mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
GDScript: Fix parsing unexpected break/continue in lambda
This commit is contained in:
parent
19c9fd6926
commit
b0b1eaeb6d
5 changed files with 35 additions and 0 deletions
|
@ -3138,6 +3138,14 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_lambda(ExpressionNode *p_p
|
|||
bool previous_in_lambda = in_lambda;
|
||||
in_lambda = true;
|
||||
|
||||
// Save break/continue state.
|
||||
bool could_break = can_break;
|
||||
bool could_continue = can_continue;
|
||||
|
||||
// Disallow break/continue.
|
||||
can_break = false;
|
||||
can_continue = false;
|
||||
|
||||
function->body = parse_suite("lambda declaration", body, true);
|
||||
complete_extents(function);
|
||||
complete_extents(lambda);
|
||||
|
@ -3155,6 +3163,11 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_lambda(ExpressionNode *p_p
|
|||
current_function = previous_function;
|
||||
in_lambda = previous_in_lambda;
|
||||
lambda->function = function;
|
||||
|
||||
// Reset break/continue state.
|
||||
can_break = could_break;
|
||||
can_continue = could_continue;
|
||||
|
||||
return lambda;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue