[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