[pypy-commit] pypy refactor-pycall: cleanup

rlamy noreply at buildbot.pypy.org
Fri Apr 3 03:23:37 CEST 2015


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: refactor-pycall
Changeset: r76693:4f23a232ec40
Date: 2015-04-03 02:22 +0100
http://bitbucket.org/pypy/pypy/changeset/4f23a232ec40/

Log:	cleanup

diff --git a/rpython/annotator/annrpython.py b/rpython/annotator/annrpython.py
--- a/rpython/annotator/annrpython.py
+++ b/rpython/annotator/annrpython.py
@@ -10,7 +10,6 @@
     Variable, Constant, FunctionGraph, checkgraph)
 from rpython.translator import simplify, transform
 from rpython.annotator import model as annmodel, signature
-from rpython.annotator.argument import simple_args
 from rpython.annotator.bookkeeper import Bookkeeper
 from rpython.rtyper.normalizecalls import perform_normalizations
 
@@ -91,14 +90,11 @@
 
     def get_call_parameters(self, function, args_s, policy):
         desc = self.bookkeeper.getdesc(function)
-        from rpython.annotator.description import FunctionDesc
-        assert isinstance(desc, FunctionDesc)
-        args = simple_args(args_s)
         prevpolicy = self.policy
         self.policy = policy
         self.bookkeeper.enter(None)
         try:
-            return desc.pycall_2(args)
+            return desc.get_call_parameters(args_s)
         finally:
             self.bookkeeper.leave()
             self.policy = prevpolicy
diff --git a/rpython/annotator/description.py b/rpython/annotator/description.py
--- a/rpython/annotator/description.py
+++ b/rpython/annotator/description.py
@@ -1,10 +1,10 @@
 from __future__ import absolute_import
 import types
 from rpython.annotator.signature import (
-    enforce_signature_args, enforce_signature_return)
+    enforce_signature_args, enforce_signature_return, finish_type)
 from rpython.flowspace.model import Constant, FunctionGraph
 from rpython.flowspace.bytecode import cpython_code_signature
-from rpython.annotator.argument import rawshape, ArgErr
+from rpython.annotator.argument import rawshape, ArgErr, simple_args
 from rpython.tool.sourcetools import valid_identifier, func_with_new_name
 from rpython.tool.pairtype import extendabletype
 from rpython.annotator.model import (
@@ -320,7 +320,8 @@
         result = unionof(result, s_previous_result)
         return result
 
-    def pycall_2(self, args):
+    def get_call_parameters(self, args_s):
+        args = simple_args(args_s)
         inputcells = self.parse_arguments(args)
         graph = self.specialize(inputcells)
         assert isinstance(graph, FunctionGraph)
@@ -329,16 +330,13 @@
         # recreate the args object because inputcells may have been changed
         new_args = args.unmatch_signature(self.signature, inputcells)
         inputcells = self.parse_arguments(new_args, graph)
-        res = graph, inputcells
-        result = s_ImpossibleValue
         signature = getattr(self.pyobj, '_signature_', None)
         if signature:
-            sigresult = enforce_signature_return(self, signature[1], result)
-            if sigresult is not None:
+            s_result = finish_type(signature[1], self.bookkeeper, self.pyobj)
+            if s_result is not None:
                 self.bookkeeper.annotator.addpendingblock(
-                    graph, graph.returnblock, [sigresult])
-                result = sigresult
-        return res
+                    graph, graph.returnblock, [s_result])
+        return graph, inputcells
 
     def bind_under(self, classdef, name):
         # XXX static methods


More information about the pypy-commit mailing list