Skip to content

Commit 6288996

Browse files
committed
Refactor ReadMemberNode so it can be DSL inlinable
1 parent 951756a commit 6288996

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

src/main/java/org/truffleruby/interop/InteropNodes.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1269,25 +1269,21 @@ protected Object members(Object receiver, boolean internal,
12691269

12701270
}
12711271

1272-
@GenerateUncached
1273-
@GenerateNodeFactory
12741272
@CoreMethod(names = "read_member", onSingleton = true, required = 2)
1275-
@NodeChild(value = "argumentNodes", type = RubyNode[].class)
1276-
public abstract static class ReadMemberNode extends RubySourceNode {
1273+
public abstract static class InteropReadMemberNode extends CoreMethodArrayArgumentsNode {
12771274

1278-
@NeverDefault
1279-
public static ReadMemberNode create() {
1280-
return InteropNodesFactory.ReadMemberNodeFactory.create(null);
1275+
@Specialization
1276+
protected Object readMember(Object receiver, Object identifier,
1277+
@Cached ReadMemberNode readMemberNode) {
1278+
return readMemberNode.execute(receiver, identifier);
12811279
}
1280+
}
12821281

1283-
public static ReadMemberNode create(RubyNode[] argumentNodes) {
1284-
return InteropNodesFactory.ReadMemberNodeFactory.create(argumentNodes);
1285-
}
1282+
@GenerateUncached
1283+
public abstract static class ReadMemberNode extends RubyBaseNode {
12861284

12871285
public abstract Object execute(Object receiver, Object identifier);
12881286

1289-
abstract RubyNode[] getArgumentNodes();
1290-
12911287
@Specialization(limit = "getInteropCacheLimit()")
12921288
protected Object readMember(Object receiver, Object identifier,
12931289
@CachedLibrary("receiver") InteropLibrary receivers,
@@ -1298,12 +1294,6 @@ protected Object readMember(Object receiver, Object identifier,
12981294
final Object foreign = InteropNodes.readMember(receivers, receiver, name, translateInteropException);
12991295
return foreignToRubyNode.executeConvert(foreign);
13001296
}
1301-
1302-
@Override
1303-
public RubyNode cloneUninitialized() {
1304-
return create(cloneUninitialized(getArgumentNodes())).copyFlags(this);
1305-
}
1306-
13071297
}
13081298

13091299
@GenerateUncached

0 commit comments

Comments
 (0)