[pypy-svn] r28978 - pypy/dist/pypy/rpython/ootypesystem
fijal at codespeak.net
fijal at codespeak.net
Tue Jun 20 11:42:33 CEST 2006
Author: fijal
Date: Tue Jun 20 11:42:32 2006
New Revision: 28978
Modified:
pypy/dist/pypy/rpython/ootypesystem/bltregistry.py
Log:
immutablevalue -> annotation_from_example
Modified: pypy/dist/pypy/rpython/ootypesystem/bltregistry.py
==============================================================================
--- pypy/dist/pypy/rpython/ootypesystem/bltregistry.py (original)
+++ pypy/dist/pypy/rpython/ootypesystem/bltregistry.py Tue Jun 20 11:42:32 2006
@@ -37,11 +37,13 @@
# assert getbookkeeper().valueoftype(self.args[i]).contains(args[i])
#if self.retval is None:
# return None
+ ann_retval = getbookkeeper().annotation_from_example(self.retval)
+
for i in args:
if isinstance(i, annmodel.SomePBC):
bookkeeper = getbookkeeper()
- bookkeeper.pbc_call(i, bookkeeper.build_args("simple_call", ()))
- return getbookkeeper().immutablevalue(self.retval)
+ bookkeeper.pbc_call(i, bookkeeper.build_args("simple_call", (ann_retval,)))
+ return ann_retval
class ExternalType(ootype.OOType):
class_dict = {}
@@ -63,7 +65,7 @@
def update_fields(self, _fields):
for i, val in _fields.iteritems():
- self._fields[i] = getbookkeeper().immutablevbalue(val)
+ self._fields[i] = getbookkeeper().annotation_from_example(val)
def _is_compatible(type2):
return type(type2) is ExternalType
@@ -73,8 +75,11 @@
def update_methods(self, _methods):
_signs = {}
for i, val in _methods.iteritems():
- retval = getbookkeeper().immutablevalue(val[1])
- _signs[i] = tuple([getbookkeeper().immutablevalue(j) for j in val[0]]), retval
+ retval = getbookkeeper().annotation_from_example(val[1])
+ values = val[0]
+ if isinstance(val[0], dict):
+ values = val[0].values()
+ _signs[i] = tuple([getbookkeeper().annotation_from_example(j) for j in values]), retval
next = annmodel.SomeBuiltin(Analyzer(i, val), s_self = annmodel.SomeExternalBuiltin(self), methodname = i)
next.const = True
self._fields[i] = next
More information about the Pypy-commit
mailing list