Skip to content

Commit cded038

Browse files
committed
Correctly restore state in visitForNode()
1 parent 52f095a commit cded038

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/main/java/org/truffleruby/parser/BodyTranslator.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1518,9 +1518,14 @@ public RubyNode visitForNode(ForParseNode node) {
15181518
final CallParseNode callNode = new CallParseNode(node.getPosition(), receiver, "each", null, block);
15191519
copyNewline(node, callNode);
15201520

1521-
translatingForStatement = true;
1522-
final RubyNode translated = callNode.accept(this);
1523-
translatingForStatement = false;
1521+
final RubyNode translated;
1522+
final boolean translatingForStatement = this.translatingForStatement;
1523+
this.translatingForStatement = true;
1524+
try {
1525+
translated = callNode.accept(this);
1526+
} finally {
1527+
this.translatingForStatement = translatingForStatement;
1528+
}
15241529

15251530
return addNewlineIfNeeded(node, translated);
15261531
}

0 commit comments

Comments
 (0)