Skip to content

Commit 8cf60ac

Browse files
committed
Support native float subtype in FloatBuiltins.HashNode
1 parent 2e733b4 commit 8cf60ac

File tree

1 file changed

+9
-1
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/floats

1 file changed

+9
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/floats/FloatBuiltins.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@
109109
import com.oracle.graal.python.runtime.formatting.InternalFormat.Spec;
110110
import com.oracle.truffle.api.CompilerDirectives;
111111
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
112+
import com.oracle.truffle.api.dsl.Bind;
112113
import com.oracle.truffle.api.dsl.Cached;
113114
import com.oracle.truffle.api.dsl.Cached.Shared;
114115
import com.oracle.truffle.api.dsl.Fallback;
@@ -654,9 +655,16 @@ protected static boolean accepts(Object obj) {
654655
@TypeSystemReference(PythonArithmeticTypes.class)
655656
abstract static class HashNode extends PythonUnaryBuiltinNode {
656657
@Specialization
657-
static long hashDouble(double self) {
658+
static long doDouble(double self) {
658659
return PyObjectHashNode.hash(self);
659660
}
661+
662+
@Specialization(guards = "dval != null")
663+
static long doNativeFloat(@SuppressWarnings("unused") VirtualFrame frame, @SuppressWarnings("unused") PythonNativeObject object,
664+
@SuppressWarnings("unused") @Cached FromNativeSubclassNode getFloat,
665+
@Bind("getFloat.execute(frame, object)") Double dval) {
666+
return PyObjectHashNode.hash(dval);
667+
}
660668
}
661669

662670
@Builtin(name = "fromhex", minNumOfPositionalArgs = 2, isClassmethod = true)

0 commit comments

Comments
 (0)