Skip to content

Commit 32ace57

Browse files
committed
Convert HasLocalVariableNode to DSL inlinable
1 parent f0b75de commit 32ace57

File tree

3 files changed

+14
-15
lines changed

3 files changed

+14
-15
lines changed

src/main/java/org/truffleruby/core/binding/BindingNodes.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import com.oracle.truffle.api.dsl.GenerateInline;
2020
import com.oracle.truffle.api.dsl.GenerateUncached;
2121
import com.oracle.truffle.api.dsl.Idempotent;
22-
import com.oracle.truffle.api.dsl.NeverDefault;
2322
import com.oracle.truffle.api.frame.FrameSlotKind;
2423
import com.oracle.truffle.api.nodes.Node;
2524
import com.oracle.truffle.api.strings.TruffleString;
@@ -175,21 +174,18 @@ RubyBinding dup(RubyBinding binding) {
175174
* variables. */
176175
@ImportStatic({ BindingNodes.class, FindDeclarationVariableNodes.class })
177176
@GenerateUncached
177+
@GenerateInline
178+
@GenerateCached(false)
178179
public abstract static class HasLocalVariableNode extends RubyBaseNode {
179180

180-
@NeverDefault
181-
public static HasLocalVariableNode create() {
182-
return BindingNodesFactory.HasLocalVariableNodeGen.create();
183-
}
184-
185-
public abstract boolean execute(RubyBinding binding, String name);
181+
public abstract boolean execute(Node node, RubyBinding binding, String name);
186182

187183
@Specialization(
188184
guards = {
189185
"name == cachedName",
190186
"getFrameDescriptor(binding) == descriptor" },
191187
limit = "getCacheLimit()")
192-
boolean localVariableDefinedCached(RubyBinding binding, String name,
188+
static boolean localVariableDefinedCached(RubyBinding binding, String name,
193189
@Cached("name") String cachedName,
194190
@Cached("getFrameDescriptor(binding)") FrameDescriptor descriptor,
195191
@Cached("findFrameSlotOrNull(name, binding.getFrame())") FrameSlotAndDepth cachedFrameSlot) {
@@ -198,7 +194,7 @@ boolean localVariableDefinedCached(RubyBinding binding, String name,
198194

199195
@TruffleBoundary
200196
@Specialization(replaces = "localVariableDefinedCached")
201-
boolean localVariableDefinedUncached(RubyBinding binding, String name) {
197+
static boolean localVariableDefinedUncached(RubyBinding binding, String name) {
202198
return FindDeclarationVariableNodes.findFrameSlotOrNull(name, binding.getFrame()) != null;
203199
}
204200

src/main/java/org/truffleruby/debug/BindingLocalVariablesObject.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ protected void writeMember(String member, Object value,
8181
@ExportMessage(name = "isMemberReadable")
8282
@ExportMessage(name = "isMemberModifiable")
8383
protected boolean memberExists(String member,
84-
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode) {
85-
return hasLocalVariableNode.execute(binding, member);
84+
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode,
85+
@Bind("$node") Node node) {
86+
return hasLocalVariableNode.execute(node, binding, member);
8687
}
8788

8889
@ExportMessage

src/main/java/org/truffleruby/debug/RubyScope.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,9 @@ static boolean readSelf(RubyScope scope, String member) {
154154

155155
@Specialization(guards = "!RECEIVER_MEMBER.equals(member)")
156156
static boolean isMemberReadable(RubyScope scope, String member,
157-
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode) {
158-
return hasLocalVariableNode.execute(scope.binding, member);
157+
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode,
158+
@Bind("this") Node node) {
159+
return hasLocalVariableNode.execute(node, scope.binding, member);
159160
}
160161
}
161162

@@ -168,8 +169,9 @@ static boolean readSelf(RubyScope scope, String member) {
168169

169170
@Specialization(guards = "!RECEIVER_MEMBER.equals(member)")
170171
static boolean isMemberModifiable(RubyScope scope, String member,
171-
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode) {
172-
return hasLocalVariableNode.execute(scope.binding, member);
172+
@Cached @Exclusive BindingNodes.HasLocalVariableNode hasLocalVariableNode,
173+
@Bind("this") Node node) {
174+
return hasLocalVariableNode.execute(node, scope.binding, member);
173175
}
174176
}
175177

0 commit comments

Comments
 (0)