blueloveTH před 11 měsíci
rodič
revize
e51e152b8c
3 změnil soubory, kde provedl 3 přidání a 15 odebrání
  1. 0 1
      include/pocketpy/xmacros/magics.h
  2. 2 4
      src/public/py_number.c
  3. 1 10
      tests/99_extras.py

+ 0 - 1
include/pocketpy/xmacros/magics.h

@@ -8,7 +8,6 @@ MAGIC_METHOD(__ge__)
 /////////////////////////////
 MAGIC_METHOD(__neg__)
 MAGIC_METHOD(__abs__)
-MAGIC_METHOD(__int__)
 MAGIC_METHOD(__round__)
 MAGIC_METHOD(__divmod__)
 /////////////////////////////

+ 2 - 4
src/public/py_number.c

@@ -123,9 +123,7 @@ static bool number__pow__(int argc, py_Ref argv) {
     return true;
 }
 
-static py_i64 i64_abs(py_i64 x) {
-    return x < 0 ? -x : x;
-}
+static py_i64 i64_abs(py_i64 x) { return x < 0 ? -x : x; }
 
 static py_i64 cpy11__fast_floor_div(py_i64 a, py_i64 b) {
     assert(b != 0);
@@ -316,7 +314,7 @@ static bool int__new__(int argc, py_Ref argv) {
                 return true;
             }
             case tp_str: break;  // leave to the next block
-            default: return pk_callmagic(__int__, 1, argv + 1);
+            default: return TypeError("int() argument must be a string, number or boolean");
         }
     }
     // 2+ args -> error

+ 1 - 10
tests/99_extras.py

@@ -52,13 +52,7 @@ assert A()[1:2, :A()[3:4, ::-1]] == (slice(1, 2, None), slice(None, (slice(3, 4,
 assert 2**2**3 == 256
 assert (2**2**3)**2 == 65536
 
-class Number:
-    def __float__(self):
-        return 1.0
-    
-    def __int__(self):
-        return 2
-    
+class Number:        
     def __divmod__(self, other):
         return 3, 4
     
@@ -66,9 +60,6 @@ class Number:
         return args
 
 assert divmod(Number(), 0) == (3, 4)
-assert float(Number()) == 1.0
-assert int(Number()) == 2
-
 assert round(Number()) == tuple()
 assert round(Number(), 1) == (1,)