diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-01 18:10:31 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-12-01 18:10:31 +0100 |
commit | 4821de146e1ad60fe43b3287aeaaf55dbe174ba5 (patch) | |
tree | 9bd07d0e8a0f02c0e91f5550ca1ffbc29ec3b2d7 /modules/gdscript/gdscript_analyzer.cpp | |
parent | 96796c151896929f01a831bbf2ab64ab18004bcd (diff) | |
parent | d1e414646285a9e9f8c9fff89077581f8af5df01 (diff) | |
download | redot-engine-4821de146e1ad60fe43b3287aeaaf55dbe174ba5.tar.gz |
Merge pull request #69423 from KoBeWi/parenture
Improve parent signature error
Diffstat (limited to 'modules/gdscript/gdscript_analyzer.cpp')
-rw-r--r-- | modules/gdscript/gdscript_analyzer.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/gdscript/gdscript_analyzer.cpp b/modules/gdscript/gdscript_analyzer.cpp index 3ea379e503..dff6e41dca 100644 --- a/modules/gdscript/gdscript_analyzer.cpp +++ b/modules/gdscript/gdscript_analyzer.cpp @@ -1216,11 +1216,7 @@ void GDScriptAnalyzer::resolve_function_signature(GDScriptParser::FunctionNode * if (!valid) { // Compute parent signature as a string to show in the error message. - String parent_signature = parent_return_type.is_hard_type() ? parent_return_type.to_string() : "Variant"; - if (parent_signature == "null") { - parent_signature = "void"; - } - parent_signature += " " + p_function->identifier->name.operator String() + "("; + String parent_signature = p_function->identifier->name.operator String() + "("; int j = 0; for (const GDScriptParser::DataType &par_type : parameters_types) { if (j > 0) { @@ -1237,7 +1233,15 @@ void GDScriptAnalyzer::resolve_function_signature(GDScriptParser::FunctionNode * j++; } - parent_signature += ")"; + parent_signature += ") -> "; + + const String return_type = parent_return_type.is_hard_type() ? parent_return_type.to_string() : "Variant"; + if (return_type == "null") { + parent_signature += "void"; + } else { + parent_signature += return_type; + } + push_error(vformat(R"(The function signature doesn't match the parent. Parent signature is "%s".)", parent_signature), p_function); } } |