@@ -1269,25 +1269,21 @@ protected Object members(Object receiver, boolean internal,
1269
1269
1270
1270
}
1271
1271
1272
- @ GenerateUncached
1273
- @ GenerateNodeFactory
1274
1272
@ 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 {
1277
1274
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 );
1281
1279
}
1280
+ }
1282
1281
1283
- public static ReadMemberNode create (RubyNode [] argumentNodes ) {
1284
- return InteropNodesFactory .ReadMemberNodeFactory .create (argumentNodes );
1285
- }
1282
+ @ GenerateUncached
1283
+ public abstract static class ReadMemberNode extends RubyBaseNode {
1286
1284
1287
1285
public abstract Object execute (Object receiver , Object identifier );
1288
1286
1289
- abstract RubyNode [] getArgumentNodes ();
1290
-
1291
1287
@ Specialization (limit = "getInteropCacheLimit()" )
1292
1288
protected Object readMember (Object receiver , Object identifier ,
1293
1289
@ CachedLibrary ("receiver" ) InteropLibrary receivers ,
@@ -1298,12 +1294,6 @@ protected Object readMember(Object receiver, Object identifier,
1298
1294
final Object foreign = InteropNodes .readMember (receivers , receiver , name , translateInteropException );
1299
1295
return foreignToRubyNode .executeConvert (foreign );
1300
1296
}
1301
-
1302
- @ Override
1303
- public RubyNode cloneUninitialized () {
1304
- return create (cloneUninitialized (getArgumentNodes ())).copyFlags (this );
1305
- }
1306
-
1307
1297
}
1308
1298
1309
1299
@ GenerateUncached
0 commit comments