GDScript: Fix if after lambda being seen as ternary

This commit is contained in:
George Marques 2022-05-23 21:13:25 -03:00
parent 0a28b4cd94
commit 969f1980d2
No known key found for this signature in database
GPG key ID: 046BD46A3201E43D
3 changed files with 10 additions and 1 deletions

View file

@ -2103,7 +2103,7 @@ GDScriptParser::ExpressionNode *GDScriptParser::parse_precedence(Precedence p_pr
ExpressionNode *previous_operand = (this->*prefix_rule)(nullptr, p_can_assign);
while (p_precedence <= get_rule(current.type)->precedence) {
if (previous_operand == nullptr || (p_stop_on_assign && current.type == GDScriptTokenizer::Token::EQUAL)) {
if (previous_operand == nullptr || (p_stop_on_assign && current.type == GDScriptTokenizer::Token::EQUAL) || (previous_operand->type == Node::LAMBDA && lambda_ended)) {
return previous_operand;
}
// Also switch multiline mode on here for infix operators.