Skip to content

Commit 88825df

Browse files
committed
Allow native objects in 'FloatBuiltins.Eq/NeNode'.
1 parent 12c30f2 commit 88825df

File tree

1 file changed

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

1 file changed

+39
-3
lines changed

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

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,24 @@ boolean eqDbPI(double a, PInt b) {
891891
return a == b.doubleValue();
892892
}
893893

894+
@Specialization
895+
Object eqPDb(PythonNativeObject left, double right,
896+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
897+
return getFloat.execute(left) == right;
898+
}
899+
900+
@Specialization
901+
Object eqPDb(PythonNativeObject left, long right,
902+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
903+
return getFloat.execute(left) == right;
904+
}
905+
906+
@Specialization
907+
Object eqPDb(PythonNativeObject left, PInt right,
908+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
909+
return getFloat.execute(left) == right.doubleValue();
910+
}
911+
894912
@Fallback
895913
@SuppressWarnings("unused")
896914
PNotImplemented eq(Object a, Object b) {
@@ -903,20 +921,38 @@ PNotImplemented eq(Object a, Object b) {
903921
@TypeSystemReference(PythonArithmeticTypes.class)
904922
abstract static class NeNode extends PythonBinaryBuiltinNode {
905923
@Specialization
906-
boolean eqDbDb(double a, double b) {
924+
boolean neDbDb(double a, double b) {
907925
return a != b;
908926
}
909927

910928
@Specialization
911-
boolean eqDbLn(double a, long b) {
929+
boolean neDbLn(double a, long b) {
912930
return a != b;
913931
}
914932

915933
@Specialization
916-
boolean eqDbPI(double a, PInt b) {
934+
boolean neDbPI(double a, PInt b) {
917935
return a != b.doubleValue();
918936
}
919937

938+
@Specialization
939+
Object eqPDb(PythonNativeObject left, double right,
940+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
941+
return getFloat.execute(left) != right;
942+
}
943+
944+
@Specialization
945+
Object eqPDb(PythonNativeObject left, long right,
946+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
947+
return getFloat.execute(left) != right;
948+
}
949+
950+
@Specialization
951+
Object eqPDb(PythonNativeObject left, PInt right,
952+
@Cached("nativeFloat()") FromNativeSubclassNode<Double> getFloat) {
953+
return getFloat.execute(left) != right.doubleValue();
954+
}
955+
920956
@Fallback
921957
@SuppressWarnings("unused")
922958
PNotImplemented eq(Object a, Object b) {

0 commit comments

Comments
 (0)