[pypy-svn] r25047 - in pypy/dist/pypy/rpython: . test
arigo at codespeak.net
arigo at codespeak.net
Mon Mar 27 19:46:44 CEST 2006
Author: arigo
Date: Mon Mar 27 19:46:32 2006
New Revision: 25047
Modified:
pypy/dist/pypy/rpython/rpbc.py
pypy/dist/pypy/rpython/test/test_rpbc.py
Log:
Yet another case for rpbc.py: converting from multiple to
single frozen pbcs, a case I just hit in the jit.
Modified: pypy/dist/pypy/rpython/rpbc.py
==============================================================================
--- pypy/dist/pypy/rpython/rpbc.py (original)
+++ pypy/dist/pypy/rpython/rpbc.py Mon Mar 27 19:46:32 2006
@@ -475,6 +475,11 @@
return inputdesc(r_pbc2, frozendesc1)
return NotImplemented
+class __extend__(pairtype(AbstractMultipleUnrelatedFrozenPBCRepr,
+ SingleFrozenPBCRepr)):
+ def convert_from_to((r_pbc1, r_pbc2), v, llops):
+ return inputconst(Void, r_pbc2.frozendesc)
+
class MethodOfFrozenPBCRepr(Repr):
"""Representation selected for a PBC of method object(s) of frozen PBCs.
Modified: pypy/dist/pypy/rpython/test/test_rpbc.py
==============================================================================
--- pypy/dist/pypy/rpython/test/test_rpbc.py (original)
+++ pypy/dist/pypy/rpython/test/test_rpbc.py Mon Mar 27 19:46:32 2006
@@ -1150,6 +1150,21 @@
res = interpret(f, [3], type_system=self.ts)
assert res == 42
+ def test_convert_multiple_to_single(self):
+ class A:
+ def meth(self, fr):
+ return 65
+ class B(A):
+ def meth(self, fr):
+ return 66
+ fr1 = Freezing()
+ fr2 = Freezing()
+ def f():
+ return A().meth(fr1) * B().meth(fr2)
+
+ res = interpret(f, [], type_system=self.ts)
+ assert res == 65*66
+
def test_call_from_list():
# Don't test with ootype, since it doesn't support lists in a
More information about the Pypy-commit
mailing list