[pypy-svn] r76816 - in pypy/branch/better-map-instances/pypy/module/__builtin__: . test

cfbolz at codespeak.net cfbolz at codespeak.net
Wed Sep 1 17:55:18 CEST 2010


Author: cfbolz
Date: Wed Sep  1 17:55:16 2010
New Revision: 76816

Modified:
   pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py
   pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py
Log:
(arigo, cfbolz): please don't subclass old-style InstanceType


Modified: pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py	(original)
+++ pypy/branch/better-map-instances/pypy/module/__builtin__/interp_classobj.py	Wed Sep  1 17:55:16 2010
@@ -757,6 +757,7 @@
                          unwrap_spec=['self', ObjSpace]),
     **rawdict
 )
+W_InstanceObject.typedef.acceptable_as_base_class = False
 
 class W_InstanceObjectWithDel(W_InstanceObject):
     def __del__(self):

Modified: pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py
==============================================================================
--- pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py	(original)
+++ pypy/branch/better-map-instances/pypy/module/__builtin__/test/test_classobj.py	Wed Sep  1 17:55:16 2010
@@ -767,6 +767,17 @@
         finally:
             warnings.simplefilter('default', RuntimeWarning)
 
+    def test_cant_subclass_instance(self):
+        class A:
+            pass
+        try:
+            class B(type(A())):
+                pass
+        except TypeError:
+            pass
+        else:
+            assert 0, "should have raised"
+
 class AppTestOldStyleSharing(AppTestOldstyle):
     def setup_class(cls):
         cls.space = gettestobjspace(**{"objspace.std.withsharingdict": True})



More information about the Pypy-commit mailing list