[pypy-svn] r49859 - in pypy/dist/pypy/module/__builtin__: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Dec 17 00:17:08 CET 2007
Author: cfbolz
Date: Mon Dec 17 00:17:08 2007
New Revision: 49859
Modified:
pypy/dist/pypy/module/__builtin__/interp_classobj.py
pypy/dist/pypy/module/__builtin__/test/test_classobj.py
Log:
fix bug in __new__
Modified: pypy/dist/pypy/module/__builtin__/interp_classobj.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__/interp_classobj.py (original)
+++ pypy/dist/pypy/module/__builtin__/interp_classobj.py Mon Dec 17 00:17:08 2007
@@ -264,7 +264,7 @@
raise OperationError(
space.w_TypeError,
space.wrap("instance() first arg must be class"))
- if w_dict is None:
+ if space.is_w(w_dict, space.w_None):
w_dict = space.newdict()
elif not space.is_true(space.isinstance(w_dict, space.w_dict)):
raise OperationError(
Modified: pypy/dist/pypy/module/__builtin__/test/test_classobj.py
==============================================================================
--- pypy/dist/pypy/module/__builtin__/test/test_classobj.py (original)
+++ pypy/dist/pypy/module/__builtin__/test/test_classobj.py Mon Dec 17 00:17:08 2007
@@ -574,6 +574,10 @@
class A:
b = 1
a = A()
+ a = type(a).__new__(type(a), A)
+ assert a.b == 1
+ a = type(a).__new__(type(a), A, None)
+ assert a.b == 1
a = type(a).__new__(type(a), A, {'c': 2})
assert a.b == 1
assert a.c == 2
More information about the Pypy-commit
mailing list