[pypy-svn] r7244 - in pypy/trunk/src/pypy/translator: . test
mwh at codespeak.net
mwh at codespeak.net
Mon Nov 15 16:34:51 CET 2004
Author: mwh
Date: Mon Nov 15 16:34:50 2004
New Revision: 7244
Modified:
pypy/trunk/src/pypy/translator/genc.py
pypy/trunk/src/pypy/translator/test/snippet.py
pypy/trunk/src/pypy/translator/test/test_ctrans.py
Log:
dumping new-style classes
Modified: pypy/trunk/src/pypy/translator/genc.py
==============================================================================
--- pypy/trunk/src/pypy/translator/genc.py (original)
+++ pypy/trunk/src/pypy/translator/genc.py Mon Nov 15 16:34:50 2004
@@ -45,13 +45,19 @@
try:
return self.cnames[key]
except KeyError:
- for cls in type(obj).__mro__:
- meth = getattr(self, 'nameof_' + cls.__name__.replace(' ', ''), None)
- if meth:
- break
+ if type(obj).__module__ != '__builtin__':
+ # assume it's a user defined thingy
+ name = self.nameof_instance(obj)
else:
- raise TypeError, "nameof(%r)" % (obj,)
- name = meth(obj)
+ for cls in type(obj).__mro__:
+ meth = getattr(self,
+ 'nameof_' + cls.__name__.replace(' ', ''),
+ None)
+ if meth:
+ break
+ else:
+ raise TypeError, "nameof(%r)" % (obj,)
+ name = meth(obj)
self.cnames[key] = name
return name
Modified: pypy/trunk/src/pypy/translator/test/snippet.py
==============================================================================
--- pypy/trunk/src/pypy/translator/test/snippet.py (original)
+++ pypy/trunk/src/pypy/translator/test/snippet.py Mon Nov 15 16:34:50 2004
@@ -395,6 +395,12 @@
return global_z.my_method()
+global_c = C()
+global_c.a = 1
+
+def global_newstyle_instance():
+ return global_c
+
def powerset(setsize=int):
"""Powerset
Modified: pypy/trunk/src/pypy/translator/test/test_ctrans.py
==============================================================================
--- pypy/trunk/src/pypy/translator/test/test_ctrans.py (original)
+++ pypy/trunk/src/pypy/translator/test/test_ctrans.py Mon Nov 15 16:34:50 2004
@@ -103,6 +103,11 @@
global_instance = self.build_cfunc(snippet.global_instance)
self.assertEquals(global_instance(), 42)
+ def test_global_newstyle_instance(self):
+ global_newstyle_instance = self.build_cfunc(snippet.global_newstyle_instance)
+ self.assertEquals(global_newstyle_instance().a, 1)
+
+
class TypedTestCase(testit.IntTestCase):
def getcompiled(self, func):
More information about the Pypy-commit
mailing list