Skip to content

Commit 20b20a5

Browse files
committed
Fixed complex.__hash__ to be consistent with float if the imaginary component is zero
1 parent 7518086 commit 20b20a5

File tree

1 file changed

+6
-3
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/complex

1 file changed

+6
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/complex/ComplexBuiltins.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@
8585
import com.oracle.graal.python.builtins.objects.PNotImplemented;
8686
import com.oracle.graal.python.builtins.objects.floats.FloatBuiltins;
8787
import com.oracle.graal.python.builtins.objects.ints.PInt;
88+
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
8889
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
8990
import com.oracle.graal.python.nodes.ErrorMessages;
9091
import com.oracle.graal.python.nodes.call.special.LookupAndCallUnaryNode;
@@ -110,6 +111,7 @@
110111
import com.oracle.truffle.api.dsl.Specialization;
111112
import com.oracle.truffle.api.dsl.TypeSystemReference;
112113
import com.oracle.truffle.api.frame.VirtualFrame;
114+
import com.oracle.truffle.api.library.CachedLibrary;
113115
import com.oracle.truffle.api.profiles.ConditionProfile;
114116

115117
@CoreFunctions(extendClasses = PythonBuiltinClassType.PComplex)
@@ -827,10 +829,11 @@ abstract static class ImagNode extends PythonBuiltinNode {
827829
abstract static class HashNode extends PythonUnaryBuiltinNode {
828830
@Specialization
829831
@TruffleBoundary
830-
int hash(PComplex self) {
832+
long hash(PComplex self,
833+
@CachedLibrary(limit = "1") PythonObjectLibrary lib) {
831834
// just like CPython
832-
int realHash = Double.hashCode(self.getReal());
833-
int imagHash = Double.hashCode(self.getImag());
835+
long realHash = lib.hash(self.getReal());
836+
long imagHash = lib.hash(self.getImag());
834837
return realHash + PComplex.IMAG_MULTIPLIER * imagHash;
835838
}
836839
}

0 commit comments

Comments
 (0)