mirror of
https://github.com/godotengine/godot.git
synced 2025-03-26 00:16:37 +08:00
GDScript: Fix match branches return check on release
The check for existence of `return` only existed on debug builds for match branches. This could lead on an invalid error after exporting. Now this is checked on relase too, so it works the same as the editor.
This commit is contained in:
parent
551f5191e5
commit
65407dd42d
@ -1906,10 +1906,8 @@ GDScriptParser::MatchNode *GDScriptParser::parse_match() {
|
||||
return match;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
bool all_have_return = true;
|
||||
bool have_wildcard = false;
|
||||
#endif
|
||||
|
||||
while (!check(GDScriptTokenizer::Token::DEDENT) && !is_at_end()) {
|
||||
MatchBranchNode *branch = parse_match_branch();
|
||||
@ -1922,21 +1920,19 @@ GDScriptParser::MatchNode *GDScriptParser::parse_match() {
|
||||
if (have_wildcard && !branch->patterns.is_empty()) {
|
||||
push_warning(branch->patterns[0], GDScriptWarning::UNREACHABLE_PATTERN);
|
||||
}
|
||||
#endif
|
||||
|
||||
have_wildcard = have_wildcard || branch->has_wildcard;
|
||||
all_have_return = all_have_return && branch->block->has_return;
|
||||
#endif
|
||||
match->branches.push_back(branch);
|
||||
}
|
||||
complete_extents(match);
|
||||
|
||||
consume(GDScriptTokenizer::Token::DEDENT, R"(Expected an indented block after "match" statement.)");
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (all_have_return && have_wildcard) {
|
||||
current_suite->has_return = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
return match;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user