[pypy-svn] r10362 - pypy/dist/pypy/translator
tismer at codespeak.net
tismer at codespeak.net
Wed Apr 6 14:13:41 CEST 2005
Author: tismer
Date: Wed Apr 6 14:13:40 2005
New Revision: 10362
Modified:
pypy/dist/pypy/translator/geninterplevel.py
Log:
support for property type plus small enhancements
Modified: pypy/dist/pypy/translator/geninterplevel.py
==============================================================================
--- pypy/dist/pypy/translator/geninterplevel.py (original)
+++ pypy/dist/pypy/translator/geninterplevel.py Wed Apr 6 14:13:40 2005
@@ -50,7 +50,10 @@
self.initcode.append1(
'def %s(expr):\n'
' dic = space.newdict([])\n'
- ' space.exec_("", dic, dic)\n'
+ ' if "types." in expr:\n'
+ ' space.exec_("import types", dic, dic)\n'
+ ' else:\n'
+ ' space.exec_("", dic, dic)\n'
' return space.eval(expr, dic, dic)' % (unique, ))
self.initcode.append1('%s = %s(%r)' % (name, unique, expr))
return name
@@ -683,7 +686,7 @@
# XXX small problem here:
# XXX with space.eval, we get <W_TypeObject(method)>
# XXX but with wrap, we get <W_TypeObject(instancemethod)>
- type(list.append): (eval_helper, "method_descriptor", "list.append"),
+ type(list.append): (eval_helper, "method_descriptor", "type(list.append)"),
# type 'wrapper_descriptor':
type(type(None).__repr__): (eval_helper, "wrapper_descriptor",
"type(type(None).__repr__)"),
@@ -701,6 +704,7 @@
types.ClassType: 'space.w_classobj',
types.MethodType: (eval_helper, "instancemethod",
"type((lambda:42).__get__(42))"),
+ property: (eval_helper, "property", 'property'),
}
def nameof_type(self, cls):
More information about the pypy-svn
mailing list