Skip to content

Commit 6a17f99

Browse files
committed
booleans may be PInt
1 parent 5d93a2c commit 6a17f99

File tree

1 file changed

+14
-0
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bool

1 file changed

+14
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bool/BoolBuiltins.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,18 @@
3535
import static com.oracle.graal.python.nodes.SpecialMethodNames.__STR__;
3636
import static com.oracle.graal.python.nodes.SpecialMethodNames.__XOR__;
3737

38+
import java.math.BigInteger;
3839
import java.util.List;
3940

4041
import com.oracle.graal.python.builtins.Builtin;
4142
import com.oracle.graal.python.builtins.CoreFunctions;
4243
import com.oracle.graal.python.builtins.PythonBuiltins;
4344
import com.oracle.graal.python.builtins.objects.PNotImplemented;
45+
import com.oracle.graal.python.builtins.objects.ints.PInt;
4446
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
4547
import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
4648
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
49+
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
4750
import com.oracle.truffle.api.dsl.Fallback;
4851
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
4952
import com.oracle.truffle.api.dsl.NodeFactory;
@@ -64,6 +67,11 @@ abstract static class StrNode extends PythonBuiltinNode {
6467
public Object str(boolean self) {
6568
return self ? "True" : "False";
6669
}
70+
71+
@Specialization
72+
public Object str(PInt self) {
73+
return self.getValue() == BigInteger.ZERO ? "False" : "True";
74+
}
6775
}
6876

6977
@Builtin(name = __REPR__, fixedNumOfArguments = 1)
@@ -79,6 +87,12 @@ boolean eq(boolean left, boolean right) {
7987
return left == right;
8088
}
8189

90+
@TruffleBoundary
91+
@Specialization
92+
boolean eq(PInt left, PInt right) {
93+
return left.getValue().equals(right.getValue());
94+
}
95+
8296
@SuppressWarnings("unused")
8397
@Fallback
8498
Object doGeneric(Object left, Object right) {

0 commit comments

Comments
 (0)