Merge pull request #70656 from vonagam/fix-void-returns

GDScript: Disallow return with value in void functions
This commit is contained in:
Rémi Verschelde 2023-01-03 12:20:33 +01:00
commit e4c1103af4
No known key found for this signature in database
GPG key ID: C3336907360768E1
7 changed files with 20 additions and 0 deletions

View file

@ -2047,6 +2047,9 @@ void GDScriptAnalyzer::resolve_return(GDScriptParser::ReturnNode *p_return) {
update_array_literal_element_type(expected_type, static_cast<GDScriptParser::ArrayNode *>(p_return->return_value));
}
}
if (has_expected_type && expected_type.is_hard_type() && expected_type.kind == GDScriptParser::DataType::BUILTIN && expected_type.builtin_type == Variant::NIL) {
push_error("A void function cannot return a value.", p_return);
}
result = p_return->return_value->get_datatype();
} else {
// Return type is null by default.