From aedbb583c99491f82bf3492e680a6e176915da55 Mon Sep 17 00:00:00 2001 From: Eric Milles Date: Wed, 4 Sep 2024 12:55:35 -0500 Subject: [PATCH] GROOVY-11450: STC: nested conditional assignments 4_0_X backport --- .../stc/StaticTypeCheckingVisitor.java | 13 +++++------- .../transform/stc/STCAssignmentTest.groovy | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java index d612cb2f013..a73a126a41c 100644 --- a/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java +++ b/src/main/java/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java @@ -4068,15 +4068,8 @@ public void visitIfElse(final IfStatement ifElse) { restoreTypeBeforeConditional(); ifElse.getElseBlock().visit(this); - - // GROOVY-9786: if chaining: "if (...) x=?; else if (...) x=?;" - Map updates = - ifElse.getElseBlock().getNodeMetaData("assignments"); - if (updates != null) { - updates.forEach(this::recordAssignment); - } } finally { - ifElse.putNodeMetaData("assignments", popAssignmentTracking(oldTracker)); + popAssignmentTracking(oldTracker); } if (!typeCheckingContext.enclosingBlocks.isEmpty()) { @@ -4274,6 +4267,10 @@ protected Map popAssignmentTracking(final Map