diff options
author | George Marques <george@gmarqu.es> | 2023-01-30 15:18:36 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2023-01-30 15:18:36 -0300 |
commit | 65407dd42d9161b62d971095f21248f3b708f2b3 (patch) | |
tree | 4b2893b706ad37a05e177a80bb987dd164a90ae6 | |
parent | 551f5191e5dbc1d1a43f99b13d5dbbf7f598dc58 (diff) |
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.
-rw-r--r-- | modules/gdscript/gdscript_parser.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/modules/gdscript/gdscript_parser.cpp b/modules/gdscript/gdscript_parser.cpp index 06c66b155f..66374d0a6d 100644 --- a/modules/gdscript/gdscript_parser.cpp +++ b/modules/gdscript/gdscript_parser.cpp @@ -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; } |