[pypy-svn] r16542 - in pypy/dist/pypy/module/__builtin__: . test

hpk at codespeak.net hpk at codespeak.net
Thu Aug 25 20:13:36 CEST 2005


Author: hpk
Date: Thu Aug 25 20:13:35 2005
New Revision: 16542

Modified:
   pypy/dist/pypy/module/__builtin__/app_misc.py
   pypy/dist/pypy/module/__builtin__/test/test_builtin.py
Log:
disallow interning of subclasses of str 


Modified: pypy/dist/pypy/module/__builtin__/app_misc.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__/app_misc.py	(original)
+++ pypy/dist/pypy/module/__builtin__/app_misc.py	Thu Aug 25 20:13:35 2005
@@ -6,11 +6,10 @@
 _stringtable = {}
 def intern(s):
     # XXX CPython has also non-immortal interned strings
-    if not isinstance(s, str):
+    if not type(s) is str: 
         raise TypeError("intern() argument 1 must be string.")
     return _stringtable.setdefault(s,s)
 
-
 def reload(module):
     import imp, sys, errno
 

Modified: pypy/dist/pypy/module/__builtin__/test/test_builtin.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__/test/test_builtin.py	(original)
+++ pypy/dist/pypy/module/__builtin__/test/test_builtin.py	Thu Aug 25 20:13:35 2005
@@ -17,6 +17,9 @@
     def test_intern(self):
         raises(TypeError, intern)
         raises(TypeError, intern, 1)
+        class S(str):
+            pass
+        raises(TypeError, intern, S("hello"))
         s = "never interned before"
         s2 = intern(s)
         assert s == s2



More information about the Pypy-commit mailing list