[pypy-svn] r63941 - in pypy/branch/pyjitpl5-simplify/pypy: annotation rpython/ootypesystem/test
arigo at codespeak.net
arigo at codespeak.net
Fri Apr 10 17:40:51 CEST 2009
Author: arigo
Date: Fri Apr 10 17:40:50 2009
New Revision: 63941
Modified:
pypy/branch/pyjitpl5-simplify/pypy/annotation/bookkeeper.py
pypy/branch/pyjitpl5-simplify/pypy/rpython/ootypesystem/test/test_ooann.py
Log:
Port a part of r54375 from the oo-jit branch. Add a test.
Modified: pypy/branch/pyjitpl5-simplify/pypy/annotation/bookkeeper.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/annotation/bookkeeper.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/annotation/bookkeeper.py Fri Apr 10 17:40:50 2009
@@ -8,7 +8,7 @@
from pypy.objspace.flow.model import Constant
from pypy.annotation.model import SomeString, SomeChar, SomeFloat, \
SomePtr, unionof, SomeInstance, SomeDict, SomeBuiltin, SomePBC, \
- SomeInteger, SomeOOInstance, TLS, SomeAddress, \
+ SomeInteger, SomeOOInstance, SomeOOObject, TLS, SomeAddress, \
SomeUnicodeCodePoint, SomeOOStaticMeth, s_None, s_ImpossibleValue, \
SomeLLADTMeth, SomeBool, SomeTuple, SomeOOClass, SomeImpossibleValue, \
SomeUnicodeString, SomeList, SomeObject, HarmlesslyBlocked, \
@@ -414,6 +414,8 @@
result = SomeOOInstance(ootype.typeOf(x))
elif isinstance(x, (ootype._record, ootype._string)):
result = SomeOOInstance(ootype.typeOf(x))
+ elif isinstance(x, (ootype._object)):
+ result = SomeOOObject()
elif callable(x):
if hasattr(x, 'im_self') and hasattr(x, 'im_func'):
# on top of PyPy, for cases like 'l.append' where 'l' is a
Modified: pypy/branch/pyjitpl5-simplify/pypy/rpython/ootypesystem/test/test_ooann.py
==============================================================================
--- pypy/branch/pyjitpl5-simplify/pypy/rpython/ootypesystem/test/test_ooann.py (original)
+++ pypy/branch/pyjitpl5-simplify/pypy/rpython/ootypesystem/test/test_ooann.py Fri Apr 10 17:40:50 2009
@@ -338,3 +338,10 @@
assert ITER._field_type("string") is Unicode
assert isinstance(res, annmodel.SomeOOInstance)
assert res.ootype is Unicode
+
+def test_null_object():
+ def fn():
+ return NULL
+ a = RPythonAnnotator()
+ s = a.build_types(fn, [])
+ assert type(s) is annmodel.SomeOOObject
More information about the Pypy-commit
mailing list