[pypy-svn] r39660 - pypy/dist/pypy/rpython
fijal at codespeak.net
fijal at codespeak.net
Fri Mar 2 12:49:58 CET 2007
Author: fijal
Date: Fri Mar 2 12:49:56 2007
New Revision: 39660
Modified:
pypy/dist/pypy/rpython/extfunc.py
Log:
Postpone annotation() a bit
Modified: pypy/dist/pypy/rpython/extfunc.py
==============================================================================
--- pypy/dist/pypy/rpython/extfunc.py (original)
+++ pypy/dist/pypy/rpython/extfunc.py Fri Mar 2 12:49:56 2007
@@ -27,12 +27,15 @@
class ExtFuncEntry(ExtRegistryEntry):
def compute_result_annotation(self, *args_s):
if self.signature_args is not None:
- assert len(args_s) == len(self.signature_args),\
+ signature_args = [annotation(arg, self.bookkeeper)
+ for arg in self.signature_args]
+ assert len(args_s) == len(signature_args),\
"Argument number mismatch"
- for arg, expected in zip(args_s, self.signature_args):
+ for arg, expected in zip(args_s, signature_args):
arg = unionof(arg, expected)
assert expected.contains(arg)
- return self.signature_result
+ signature_result = annotation(self.signature_result, self.bookkeeper)
+ return signature_result
def specialize_call(self, hop):
rtyper = hop.rtyper
@@ -65,8 +68,8 @@
if args is None:
signature_args = None
else:
- signature_args = [annotation(arg) for arg in args]
- signature_result = annotation(result)
+ signature_args = args
+ signature_result = result
name=export_name
if llimpl:
lltypeimpl = llimpl
More information about the Pypy-commit
mailing list