Merge pull request #59863 from cdemirer/fix-match-multiple-bind-single-pattern

Fix issues with multiple bind patterns in match statement
This commit is contained in:
Rémi Verschelde 2022-05-11 14:18:02 +02:00 committed by GitHub
commit 9963ae3553
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 1 deletions

View file

@ -1863,7 +1863,7 @@ GDScriptParser::MatchBranchNode *GDScriptParser::parse_match_branch() {
if (pattern == nullptr) {
continue;
}
if (pattern->pattern_type == PatternNode::PT_BIND) {
if (pattern->binds.size() > 0) {
has_bind = true;
}
if (branch->patterns.size() > 0 && has_bind) {
@ -1899,6 +1899,7 @@ GDScriptParser::MatchBranchNode *GDScriptParser::parse_match_branch() {
for (const StringName &E : binds) {
SuiteNode::Local local(branch->patterns[0]->binds[E], current_function);
local.type = SuiteNode::Local::PATTERN_BIND;
suite->add_local(local);
}
}