1010package org .jruby .truffle .nodes .core ;
1111
1212import com .oracle .truffle .api .CompilerDirectives ;
13+ import com .oracle .truffle .api .dsl .CreateCast ;
14+ import com .oracle .truffle .api .dsl .NodeChild ;
1315import com .oracle .truffle .api .dsl .Specialization ;
1416import com .oracle .truffle .api .source .SourceSection ;
1517import com .oracle .truffle .api .utilities .ConditionProfile ;
2022import org .jcodings .util .CaseInsensitiveBytesHash ;
2123import org .jcodings .util .Hash ;
2224import org .jruby .runtime .encoding .EncodingService ;
25+ import org .jruby .truffle .nodes .RubyNode ;
26+ import org .jruby .truffle .nodes .coerce .ToStrNodeFactory ;
2327import org .jruby .truffle .runtime .RubyContext ;
2428import org .jruby .truffle .runtime .core .RubyArray ;
2529import org .jruby .truffle .runtime .core .RubyEncoding ;
@@ -224,7 +228,8 @@ public RubyNilClass defaultExternal(RubyNilClass encoding) {
224228 }
225229
226230 @ CoreMethod (names = "find" , onSingleton = true , required = 1 )
227- public abstract static class FindNode extends CoreMethodNode {
231+ @ NodeChild (value = "name" )
232+ public abstract static class FindNode extends RubyNode {
228233
229234 public FindNode (RubyContext context , SourceSection sourceSection ) {
230235 super (context , sourceSection );
@@ -234,6 +239,10 @@ public FindNode(FindNode prev) {
234239 super (prev );
235240 }
236241
242+ @ CreateCast ("name" ) public RubyNode coerceNameToString (RubyNode name ) {
243+ return ToStrNodeFactory .create (getContext (), getSourceSection (), name );
244+ }
245+
237246 @ Specialization
238247 public RubyEncoding find (RubyString name ) {
239248 notDesignedForCompilation ();
0 commit comments