Skip to content

Commit fcbd85e

Browse files
committed
Convert ToHexStringNode to DSL inlinable
1 parent cf652d6 commit fcbd85e

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/main/java/org/truffleruby/core/kernel/KernelNodes.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,35 +1751,38 @@ public abstract static class KernelToHexStringNode extends PrimitiveArrayArgumen
17511751
@Specialization
17521752
String toHexString(Object value,
17531753
@Cached ToHexStringNode toHexStringNode) {
1754-
return toHexStringNode.execute(value);
1754+
return toHexStringNode.execute(this, value);
17551755
}
17561756
}
17571757

17581758

17591759
@GenerateUncached
1760+
@GenerateInline
1761+
@GenerateCached(false)
17601762
public abstract static class ToHexStringNode extends RubyBaseNode {
17611763

1762-
public static ToHexStringNode getUncached() {
1763-
return KernelNodesFactory.ToHexStringNodeGen.getUncached();
1764-
}
1764+
public abstract String execute(Node node, Object value);
17651765

1766-
public abstract String execute(Object value);
1766+
public static String executeUncached(Object value) {
1767+
return KernelNodesFactory.ToHexStringNodeGen.getUncached().execute(null, value);
1768+
}
17671769

17681770
@Specialization
1769-
String toHexString(int value) {
1771+
static String toHexString(int value) {
17701772
return toHexString((long) value);
17711773
}
17721774

17731775
@TruffleBoundary
17741776
@Specialization
1775-
String toHexString(long value) {
1777+
static String toHexString(long value) {
17761778
return Long.toHexString(value);
17771779
}
17781780

17791781
@Specialization
1780-
String toHexString(RubyBignum value) {
1782+
static String toHexString(RubyBignum value) {
17811783
return BigIntegerOps.toString(value.value, 16);
17821784
}
1785+
17831786
}
17841787

17851788
@CoreMethod(names = { "to_s", "inspect" }) // Basic #inspect, refined later in core
@@ -1812,7 +1815,7 @@ RubyString toS(Object self,
18121815
@Cached ToHexStringNode toHexStringNode) {
18131816
String className = classNode.execute(self).fields.getName();
18141817
Object id = objectIDNode.execute(self);
1815-
String hexID = toHexStringNode.execute(id);
1818+
String hexID = toHexStringNode.execute(this, id);
18161819

18171820
String javaString = Utils.concat("#<", className, ":0x", hexID, ">");
18181821

@@ -1826,7 +1829,7 @@ RubyString toS(Object self,
18261829
public static String uncachedBasicToS(Object self) {
18271830
String className = LogicalClassNode.getUncached().execute(self).fields.getName();
18281831
Object id = ObjectIDNode.getUncached().execute(self);
1829-
String hexID = ToHexStringNode.getUncached().execute(id);
1832+
String hexID = ToHexStringNode.executeUncached(id);
18301833

18311834
return "#<" + className + ":0x" + hexID + ">";
18321835
}

0 commit comments

Comments
 (0)