Skip to content

Commit ab12b77

Browse files
committed
Remove extra DefinedWrapperNode for ||=
1 parent 028da46 commit ab12b77

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/main/java/org/truffleruby/language/control/OrLazyValueDefinedNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
*/
1010
package org.truffleruby.language.control;
1111

12+
import org.truffleruby.RubyContext;
13+
import org.truffleruby.RubyLanguage;
1214
import org.truffleruby.core.cast.BooleanCastNode;
1315
import org.truffleruby.language.RubyContextSourceNode;
1416
import org.truffleruby.language.RubyNode;
@@ -71,4 +73,8 @@ public Object execute(VirtualFrame frame) {
7173
}
7274
}
7375

76+
@Override
77+
public Object isDefined(VirtualFrame frame, RubyLanguage language, RubyContext context) {
78+
return language.coreStrings.ASSIGNMENT.createInstance(context);
79+
}
7480
}

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2354,9 +2354,7 @@ public RubyNode visitOpAsgnNode(OpAsgnParseNode node) {
23542354
pos,
23552355
receiverValue.get(pos),
23562356
node.getVariableName() + "=",
2357-
buildArrayNode(
2358-
pos,
2359-
node.getValueNode()),
2357+
buildArrayNode(pos, node.getValueNode()),
23602358
false,
23612359
node.getReceiverNode() instanceof SelfParseNode);
23622360

@@ -2432,9 +2430,7 @@ private RubyNode translateOpAsgOrNode(ParseNode node, RubyNode lhs, RubyNode rhs
24322430

24332431
final SourceIndexLength sourceSection = node.getPosition();
24342432

2435-
final RubyNode ret = new DefinedWrapperNode(
2436-
language.coreStrings.ASSIGNMENT,
2437-
new OrLazyValueDefinedNode(lhs, rhs));
2433+
final RubyNode ret = new OrLazyValueDefinedNode(lhs, rhs);
24382434
ret.unsafeSetSourceSection(sourceSection);
24392435
return addNewlineIfNeeded(node, ret);
24402436
}

0 commit comments

Comments
 (0)