@@ -990,7 +990,7 @@ protected boolean isInstanceVariableDefined(RubyDynamicObject object, Object nam
990
990
@ Cached CheckIVarNameNode checkIVarNameNode ,
991
991
@ CachedLibrary (limit = "getDynamicObjectCacheLimit()" ) DynamicObjectLibrary objectLibrary ,
992
992
@ Cached NameToJavaStringNode nameToJavaStringNode ) {
993
- final String nameString = nameToJavaStringNode .execute (name );
993
+ final String nameString = nameToJavaStringNode .execute (this , name );
994
994
checkIVarNameNode .execute (object , nameString , name );
995
995
return objectLibrary .containsKey (object , nameString );
996
996
}
@@ -1009,7 +1009,7 @@ protected Object instanceVariableGetSymbol(RubyDynamicObject object, Object name
1009
1009
@ Cached @ Shared CheckIVarNameNode checkIVarNameNode ,
1010
1010
@ CachedLibrary (limit = "getDynamicObjectCacheLimit()" ) DynamicObjectLibrary objectLibrary ,
1011
1011
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ) {
1012
- final String nameString = nameToJavaStringNode .execute (name );
1012
+ final String nameString = nameToJavaStringNode .execute (this , name );
1013
1013
checkIVarNameNode .execute (object , nameString , name );
1014
1014
return objectLibrary .getOrDefault (object , nameString , nil );
1015
1015
}
@@ -1018,7 +1018,7 @@ protected Object instanceVariableGetSymbol(RubyDynamicObject object, Object name
1018
1018
protected Object immutable (Object object , Object name ,
1019
1019
@ Cached @ Shared CheckIVarNameNode checkIVarNameNode ,
1020
1020
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ) {
1021
- final String nameString = nameToJavaStringNode .execute (name );
1021
+ final String nameString = nameToJavaStringNode .execute (this , name );
1022
1022
checkIVarNameNode .execute (object , nameString , name );
1023
1023
return nil ;
1024
1024
}
@@ -1033,7 +1033,7 @@ protected Object instanceVariableSet(RubyDynamicObject object, Object name, Obje
1033
1033
@ Cached WriteObjectFieldNode writeNode ,
1034
1034
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ,
1035
1035
@ Cached TypeNodes .CheckFrozenNode raiseIfFrozenNode ) {
1036
- final String nameString = nameToJavaStringNode .execute (name );
1036
+ final String nameString = nameToJavaStringNode .execute (this , name );
1037
1037
checkIVarNameNode .execute (object , nameString , name );
1038
1038
raiseIfFrozenNode .execute (object );
1039
1039
writeNode .execute (this , object , nameString , value );
@@ -1044,7 +1044,7 @@ protected Object instanceVariableSet(RubyDynamicObject object, Object name, Obje
1044
1044
protected Object immutable (Object object , Object name , Object value ,
1045
1045
@ Cached @ Shared CheckIVarNameNode checkIVarNameNode ,
1046
1046
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ) {
1047
- final String nameString = nameToJavaStringNode .execute (name );
1047
+ final String nameString = nameToJavaStringNode .execute (this , name );
1048
1048
checkIVarNameNode .execute (object , nameString , name );
1049
1049
throw new RaiseException (getContext (), coreExceptions ().frozenError (object , this ));
1050
1050
}
@@ -1058,7 +1058,7 @@ protected Object removeInstanceVariable(RubyDynamicObject object, Object name,
1058
1058
@ Cached @ Shared CheckIVarNameNode checkIVarNameNode ,
1059
1059
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ,
1060
1060
@ Cached TypeNodes .CheckFrozenNode raiseIfFrozenNode ) {
1061
- final String nameString = nameToJavaStringNode .execute (name );
1061
+ final String nameString = nameToJavaStringNode .execute (this , name );
1062
1062
checkIVarNameNode .execute (object , nameString , name );
1063
1063
raiseIfFrozenNode .execute (object );
1064
1064
return removeIVar (object , nameString );
@@ -1068,7 +1068,7 @@ protected Object removeInstanceVariable(RubyDynamicObject object, Object name,
1068
1068
protected Object immutable (Object object , Object name ,
1069
1069
@ Cached @ Shared CheckIVarNameNode checkIVarNameNode ,
1070
1070
@ Cached @ Shared NameToJavaStringNode nameToJavaStringNode ) {
1071
- final String nameString = nameToJavaStringNode .execute (name );
1071
+ final String nameString = nameToJavaStringNode .execute (this , name );
1072
1072
checkIVarNameNode .execute (object , nameString , name );
1073
1073
throw new RaiseException (getContext (), coreExceptions ().frozenError (object , this ));
1074
1074
}
@@ -1408,7 +1408,7 @@ protected Object send(Frame callerFrame, Object self, Object[] rubyArgs, RootCal
1408
1408
@ Cached NameToJavaStringNode nameToJavaString ) {
1409
1409
Object name = RubyArguments .getArgument (rubyArgs , 0 );
1410
1410
Object [] newArgs = RubyArguments .repack (rubyArgs , self , 1 );
1411
- return dispatchNode .dispatch (callerFrame , self , nameToJavaString .execute (name ), newArgs );
1411
+ return dispatchNode .dispatch (callerFrame , self , nameToJavaString .execute (this , name ), newArgs );
1412
1412
}
1413
1413
1414
1414
}
@@ -1514,18 +1514,14 @@ protected RubyClass singletonClass(Object self,
1514
1514
@ NodeChild (value = "name" , type = RubyBaseNodeWithExecute .class )
1515
1515
public abstract static class SingletonMethodNode extends CoreMethodNode {
1516
1516
1517
-
1518
- @ CreateCast ("name" )
1519
- protected RubyBaseNodeWithExecute coerceToString (RubyBaseNodeWithExecute name ) {
1520
- return NameToJavaStringNode .create (name );
1521
- }
1522
-
1523
1517
@ Specialization
1524
- protected RubyMethod singletonMethod (Object self , String name ,
1518
+ protected RubyMethod singletonMethod (Object self , Object nameObject ,
1519
+ @ Cached NameToJavaStringNode nameToJavaStringNode ,
1525
1520
@ Cached InlinedBranchProfile errorProfile ,
1526
1521
@ Cached InlinedConditionProfile singletonProfile ,
1527
1522
@ Cached InlinedConditionProfile methodProfile ,
1528
1523
@ Cached MetaClassNode metaClassNode ) {
1524
+ final var name = nameToJavaStringNode .execute (this , nameObject );
1529
1525
final RubyClass metaClass = metaClassNode .execute (this , self );
1530
1526
1531
1527
if (singletonProfile .profile (this , metaClass .isSingleton )) {
0 commit comments