3535import static com .oracle .graal .python .nodes .SpecialMethodNames .__STR__ ;
3636import static com .oracle .graal .python .nodes .SpecialMethodNames .__XOR__ ;
3737
38+ import java .math .BigInteger ;
3839import java .util .List ;
3940
4041import com .oracle .graal .python .builtins .Builtin ;
4142import com .oracle .graal .python .builtins .CoreFunctions ;
4243import com .oracle .graal .python .builtins .PythonBuiltins ;
4344import com .oracle .graal .python .builtins .objects .PNotImplemented ;
45+ import com .oracle .graal .python .builtins .objects .ints .PInt ;
4446import com .oracle .graal .python .nodes .function .PythonBuiltinNode ;
4547import com .oracle .graal .python .nodes .function .builtins .PythonBinaryBuiltinNode ;
4648import com .oracle .graal .python .nodes .function .builtins .PythonUnaryBuiltinNode ;
49+ import com .oracle .truffle .api .CompilerDirectives .TruffleBoundary ;
4750import com .oracle .truffle .api .dsl .Fallback ;
4851import com .oracle .truffle .api .dsl .GenerateNodeFactory ;
4952import 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