]> granicus.if.org Git - python/commitdiff
Raise exception instead of dropping imag part for conversion to int,
authorGuido van Rossum <guido@python.org>
Wed, 11 Sep 1996 22:54:37 +0000 (22:54 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 11 Sep 1996 22:54:37 +0000 (22:54 +0000)
long, float.

Raise exception instead of dumping core for remainder and divmod.

Objects/complexobject.c

index 063f3e09d0fda94100869ec29e27415a4107d6b2..d58ecd1dab628d315936ffe4538bcc3383b7525d 100644 (file)
@@ -478,29 +478,27 @@ static object *
 complex_int(v)
        object *v;
 {
-       double x = ((complexobject *)v)->cval.real;
-       if (x < 0 ? (x = ceil(x)) < (double)LONG_MIN
-                 : (x = floor(x)) > (double)LONG_MAX) {
-               err_setstr(OverflowError, "float too large to convert");
-               return NULL;
-       }
-       return newintobject((long)x);
+       err_setstr(TypeError,
+                  "can't convert complex to int; use e.g. int(abs(z))");
+       return NULL;
 }
 
 static object *
 complex_long(v)
        object *v;
 {
-       double x = ((complexobject *)v)->cval.real;
-       return dnewlongobject(x);
+       err_setstr(TypeError,
+                  "can't convert complex to long; use e.g. long(abs(z))");
+       return NULL;
 }
 
 static object *
 complex_float(v)
        object *v;
 {
-       double x = ((complexobject *)v)->cval.real;
-       return newfloatobject(x);
+       err_setstr(TypeError,
+                  "can't convert complex to float; use e.g. abs(z)");
+       return NULL;
 }