[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