Author: Ronan Lamy <[email protected]>
Branch: py3.6
Changeset: r91901:b69f41d7b76d
Date: 2017-07-16 13:03 +0000
http://bitbucket.org/pypy/pypy/changeset/b69f41d7b76d/

Log:    Merged in mad-marty/pypy/py3.6 (pull request #557)

        (ronan,pzieschang) fixed int() behaviour also for __trunc__
        returning a subclass of int

diff --git a/pypy/objspace/std/intobject.py b/pypy/objspace/std/intobject.py
--- a/pypy/objspace/std/intobject.py
+++ b/pypy/objspace/std/intobject.py
@@ -865,7 +865,7 @@
             return _from_intlike(space, w_inttype, space.int(w_value))
         elif space.lookup(w_value, '__trunc__') is not None:
             w_obj = space.trunc(w_value)
-            if not space.isinstance_w(w_obj, space.w_int):
+            if not space.is_w(space.type(w_obj), space.w_int):
                 w_obj = space.int(w_obj)
             return _from_intlike(space, w_inttype, w_obj)
         elif space.isinstance_w(w_value, space.w_unicode):
diff --git a/pypy/objspace/std/test/test_longobject.py 
b/pypy/objspace/std/test/test_longobject.py
--- a/pypy/objspace/std/test/test_longobject.py
+++ b/pypy/objspace/std/test/test_longobject.py
@@ -337,7 +337,7 @@
                 return IntSubclass(42)
         n = int(TruncReturnsNonInt())
         assert n == 42
-        assert type(n) is IntSubclass
+        assert type(n) is int
 
     def test_long_before_string(self):
         class A(str):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to