[pypy-svn] r4770 - in pypy/trunk/src/pypy/translator: . test
arigo at codespeak.net
arigo at codespeak.net
Mon May 31 18:03:00 CEST 2004
Author: arigo
Date: Mon May 31 18:03:00 2004
New Revision: 4770
Modified:
pypy/trunk/src/pypy/translator/genpyrex.py
pypy/trunk/src/pypy/translator/test/snippet.py
pypy/trunk/src/pypy/translator/test/test_translator.py
Log:
Generate simple methods. This hack has name clashes problem.
Modified: pypy/trunk/src/pypy/translator/genpyrex.py
==============================================================================
--- pypy/trunk/src/pypy/translator/genpyrex.py (original)
+++ pypy/trunk/src/pypy/translator/genpyrex.py Mon May 31 18:03:00 2004
@@ -191,6 +191,8 @@
self.lines = currentlines
inputargnames = [ " ".join(self._paramvardecl(var)) for var in fun.getargs() ]
params = ", ".join(inputargnames)
+ #returntype = self.get_type(fun.getreturnvar())
+ #returntypename = self._gettypename(returntype)
self.putline("def %s(%s):" % (fun.name, params))
self.indent += 1
#self.putline("# %r" % self.annotations)
@@ -355,9 +357,9 @@
empty = False
list_methods=delay_methods.get(cls,[])
for py_fun in list_methods:
- self.putline("def %s(*args):" % (self._str(py_fun,'XXX')))
+ self.putline("def %s(self, *args):" % py_fun.__name__)
self.indent += 1
- self.putline("return %s(*args)" %(self._str(py_fun,'XXX')))
+ self.putline("return %s(self, *args)" % py_fun.__name__)
self.indent -= 1
if empty:
self.putline("pass")
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 May 31 18:03:00 2004
@@ -361,3 +361,12 @@
while n:
l[7] = 5
return v
+
+class Z:
+ def my_method(self):
+ return self.my_attribute
+
+def simple_method(v):
+ z = Z()
+ z.my_attribute = v
+ return z.my_method()
Modified: pypy/trunk/src/pypy/translator/test/test_translator.py
==============================================================================
--- pypy/trunk/src/pypy/translator/test/test_translator.py (original)
+++ pypy/trunk/src/pypy/translator/test/test_translator.py Mon May 31 18:03:00 2004
@@ -19,5 +19,11 @@
inheritance2 = t.compile()
self.assertEquals(inheritance2(), ((-12, -12), (3, "world")))
+ def test_simple_method(self):
+ t = Translator(snippet.simple_method)
+ t.annotate([int]).simplify()
+ simple_method = t.compile()
+ self.assertEquals(simple_method(55), 55)
+
if __name__ == '__main__':
testit.main()
More information about the Pypy-commit
mailing list