Explorar o código

fix large integer issue (https://github.com/frabbit/hx2python/issues/30)

frabbit %!s(int64=11) %!d(string=hai) anos
pai
achega
d2a6e557bb
Modificáronse 2 ficheiros con 4 adicións e 4 borrados
  1. 2 1
      std/python/_std/Std.hx
  2. 2 3
      tests/unit/TestReflect.hx

+ 2 - 1
std/python/_std/Std.hx

@@ -62,10 +62,11 @@ import python.Syntax;
 		}
 		var vIsFloat = Builtin.isinstance(v, Builtin.float);
 
-		if (!isBool && vIsFloat && t == Int && Math.isFinite(v) && v == Std.int(v)) {
+		if (!isBool && vIsFloat && t == Int && Math.isFinite(v) && v == Std.int(v) && v <= 2147483647 && v >= -2147483648) {
 			return true;
 		}
 
+
 		if (!isBool &&  t == Float && ( Builtin.isinstance(v, python.Syntax.pythonCode("(float,int)")))) {
 			return true;
 		}

+ 2 - 3
tests/unit/TestReflect.hx

@@ -117,9 +117,8 @@ class TestReflect extends Test {
 		is(-1,Int,Float);
 		is(2.0,Int,Float);
 		is(1.2,Float);
-		// TODO: check these
-		//is(1e10,Float);
-		//is(-1e10,Float);
+		is(1e10,Float);
+		is(-1e10,Float);
 		is(Math.NaN,Float);
 		is(Math.POSITIVE_INFINITY,Float);
 		is(Math.NEGATIVE_INFINITY,Float);