[pypy-svn] r14748 - in pypy/dist/pypy/rpython: . test
pedronis at codespeak.net
pedronis at codespeak.net
Mon Jul 18 21:05:55 CEST 2005
Author: pedronis
Date: Mon Jul 18 21:05:53 2005
New Revision: 14748
Modified:
pypy/dist/pypy/rpython/rbuiltin.py
pypy/dist/pypy/rpython/test/test_rbuiltin.py
Log:
direct support for isinstance calls statically computed by the annotator
Modified: pypy/dist/pypy/rpython/rbuiltin.py
==============================================================================
--- pypy/dist/pypy/rpython/rbuiltin.py (original)
+++ pypy/dist/pypy/rpython/rbuiltin.py Mon Jul 18 21:05:53 2005
@@ -113,6 +113,8 @@
return hop.args_r[0].rtype_bltn_list(hop)
def rtype_builtin_isinstance(hop):
+ if hop.s_result.is_constant():
+ return hop.inputconst(lltype.Bool, hop.s_result.const)
if hop.args_r[0] == pyobj_repr or hop.args_r[1] == pyobj_repr:
v_obj, v_typ = hop.inputargs(pyobj_repr, pyobj_repr)
c = hop.inputconst(pyobj_repr, isinstance)
Modified: pypy/dist/pypy/rpython/test/test_rbuiltin.py
==============================================================================
--- pypy/dist/pypy/rpython/test/test_rbuiltin.py (original)
+++ pypy/dist/pypy/rpython/test/test_rbuiltin.py Mon Jul 18 21:05:53 2005
@@ -169,5 +169,13 @@
_1_0 = lltype.pyobjectptr(1.0)
res = interpret(f, [_1_0], someobjects=True)
assert res is False
-
-
+
+
+def test_const_isinstance():
+ class B(object):
+ pass
+ def f():
+ b = B()
+ return isinstance(b, B)
+ res = interpret(f, [])
+ assert res is True
More information about the Pypy-commit
mailing list