[pypy-commit] pypy default: Test and fix

arigo noreply at buildbot.pypy.org
Tue Feb 4 00:12:16 CET 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r69067:36ce13e8847d
Date: 2014-02-04 00:11 +0100
http://bitbucket.org/pypy/pypy/changeset/36ce13e8847d/

Log:	Test and fix

diff --git a/pypy/objspace/std/specialisedtupleobject.py b/pypy/objspace/std/specialisedtupleobject.py
--- a/pypy/objspace/std/specialisedtupleobject.py
+++ b/pypy/objspace/std/specialisedtupleobject.py
@@ -131,11 +131,11 @@
     from pypy.objspace.std.floatobject import W_FloatObject
     if len(list_w) == 2:
         w_arg1, w_arg2 = list_w
-        if isinstance(w_arg1, W_IntObject):
-            if isinstance(w_arg2, W_IntObject):
+        if type(w_arg1) is W_IntObject:
+            if type(w_arg2) is W_IntObject:
                 return Cls_ii(space, w_arg1, w_arg2)
-        elif isinstance(w_arg1, W_FloatObject):
-            if isinstance(w_arg2, W_FloatObject):
+        elif type(w_arg1) is W_FloatObject:
+            if type(w_arg2) is W_FloatObject:
                 return Cls_ff(space, w_arg1, w_arg2)
         return Cls_oo(space, w_arg1, w_arg2)
     else:
diff --git a/pypy/objspace/std/test/test_specialisedtupleobject.py b/pypy/objspace/std/test/test_specialisedtupleobject.py
--- a/pypy/objspace/std/test/test_specialisedtupleobject.py
+++ b/pypy/objspace/std/test/test_specialisedtupleobject.py
@@ -214,6 +214,14 @@
         assert a == (1, 2.2,) + b
         assert not a != (1, 2.2) + b
 
+    def test_subclasses(self):
+        class I(int): pass
+        class F(float): pass
+        t = (I(42), I(43))
+        assert type(t[0]) is I
+        t = (F(42), F(43))
+        assert type(t[0]) is F
+
 
 class AppTestAll(test_tupleobject.AppTestW_TupleObject):
     spaceconfig = {"objspace.std.withspecialisedtuple": True}


More information about the pypy-commit mailing list