Skip to content

Commit 41fa0e7

Browse files
committed
Convert ToPathNode to DSL inlinable node
1 parent 7497e05 commit 41fa0e7

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

src/main/java/org/truffleruby/core/cast/ToPathNode.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
*/
1010
package org.truffleruby.core.cast;
1111

12+
import com.oracle.truffle.api.dsl.GenerateCached;
13+
import com.oracle.truffle.api.dsl.GenerateInline;
14+
import com.oracle.truffle.api.nodes.Node;
1215
import org.truffleruby.core.string.RubyString;
1316
import org.truffleruby.core.string.ImmutableRubyString;
1417
import org.truffleruby.language.RubyBaseNode;
@@ -17,23 +20,25 @@
1720
import com.oracle.truffle.api.dsl.Cached;
1821
import com.oracle.truffle.api.dsl.Specialization;
1922

23+
@GenerateCached(false)
24+
@GenerateInline
2025
public abstract class ToPathNode extends RubyBaseNode {
2126

22-
public abstract Object execute(Object value);
27+
public abstract Object execute(Node node, Object value);
2328

2429
@Specialization
25-
RubyString coerceRubyString(RubyString path) {
30+
static RubyString coerceRubyString(RubyString path) {
2631
return path;
2732
}
2833

2934
@Specialization
30-
ImmutableRubyString coerceImmutableRubyString(ImmutableRubyString path) {
35+
static ImmutableRubyString coerceImmutableRubyString(ImmutableRubyString path) {
3136
return path;
3237
}
3338

3439
@Specialization(guards = "isNotRubyString(object)")
35-
RubyString coerceObject(Object object,
36-
@Cached DispatchNode toPathNode) {
37-
return (RubyString) toPathNode.call(coreLibrary().truffleTypeModule, "coerce_to_path", object);
40+
static RubyString coerceObject(Node node, Object object,
41+
@Cached(inline = false) DispatchNode toPathNode) {
42+
return (RubyString) toPathNode.call(coreLibrary(node).truffleTypeModule, "coerce_to_path", object);
3843
}
3944
}

src/main/java/org/truffleruby/core/module/ModuleNodes.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -617,9 +617,9 @@ public abstract static class AutoloadNode extends CoreMethodArrayArgumentsNode {
617617
static Object autoload(RubyModule module, Object nameObject, Object filename,
618618
@Cached NameToJavaStringNode nameToJavaStringNode,
619619
@Cached ToPathNode toPathNode,
620-
@Bind("toPathNode.execute(filename)") Object filenameAsPath,
621-
@Cached RubyStringLibrary libFilename,
622-
@Bind("this") Node node) {
620+
@Bind("this") Node node,
621+
@Bind("toPathNode.execute(node, filename)") Object filenameAsPath,
622+
@Cached RubyStringLibrary libFilename) {
623623
final var name = nameToJavaStringNode.execute(node, nameObject);
624624
if (!Identifiers.isValidConstantName(name)) {
625625
throw new RaiseException(

0 commit comments

Comments
 (0)