Skip to content

Commit 68f46de

Browse files
committed
Refactor WriteMemberWithoutConversionNode so it can be DSL inlinable
1 parent 6be8168 commit 68f46de

File tree

1 file changed

+8
-17
lines changed

1 file changed

+8
-17
lines changed

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

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,24 +1349,21 @@ protected Object write(Object receiver, Object identifier, Object value,
13491349
}
13501350
}
13511351

1352-
@GenerateUncached
1353-
@GenerateNodeFactory
13541352
@CoreMethod(names = "write_member_without_conversion", onSingleton = true, required = 3)
1355-
@NodeChild(value = "argumentNodes", type = RubyNode[].class)
1356-
public abstract static class WriteMemberWithoutConversionNode extends RubySourceNode {
1353+
public abstract static class InteropWriteMemberWithoutConversionNode extends CoreMethodArrayArgumentsNode {
13571354

1358-
public static WriteMemberWithoutConversionNode create() {
1359-
return InteropNodesFactory.WriteMemberWithoutConversionNodeFactory.create(null);
1355+
@Specialization
1356+
protected Object write(Object receiver, Object identifier, Object value,
1357+
@Cached WriteMemberWithoutConversionNode writeMemberWithoutConversionNode) {
1358+
return writeMemberWithoutConversionNode.execute(receiver, identifier, value);
13601359
}
1360+
}
13611361

1362-
public static WriteMemberWithoutConversionNode create(RubyNode[] argumentNodes) {
1363-
return InteropNodesFactory.WriteMemberWithoutConversionNodeFactory.create(argumentNodes);
1364-
}
1362+
@GenerateUncached
1363+
public abstract static class WriteMemberWithoutConversionNode extends RubyBaseNode {
13651364

13661365
public abstract Object execute(Object receiver, Object identifier, Object value);
13671366

1368-
abstract RubyNode[] getArgumentNodes();
1369-
13701367
@Specialization(limit = "getInteropCacheLimit()")
13711368
protected Object write(Object receiver, Object identifier, Object value,
13721369
@CachedLibrary("receiver") InteropLibrary receivers,
@@ -1381,12 +1378,6 @@ protected Object write(Object receiver, Object identifier, Object value,
13811378

13821379
return value;
13831380
}
1384-
1385-
@Override
1386-
public RubyNode cloneUninitialized() {
1387-
return create(cloneUninitialized(getArgumentNodes())).copyFlags(this);
1388-
}
1389-
13901381
}
13911382

13921383
@CoreMethod(names = "remove_member", onSingleton = true, required = 2)

0 commit comments

Comments
 (0)