Author: Ronan Lamy <ronan.l...@gmail.com> Branch: reflowing Changeset: r88663:ce4e321b09fa Date: 2016-11-25 05:48 +0000 http://bitbucket.org/pypy/pypy/changeset/ce4e321b09fa/
Log: Inline ann.recursivecall() into its only caller diff --git a/rpython/annotator/annrpython.py b/rpython/annotator/annrpython.py --- a/rpython/annotator/annrpython.py +++ b/rpython/annotator/annrpython.py @@ -294,28 +294,6 @@ self.var_def[v_result] = position_key return v_result - - def recursivecall(self, graph, whence, inputcells, v_result): - if whence is not None: - self.record_call(graph, whence) - if v_result is not None: - # self.notify[graph.returnblock] is a set of variables to update - # whenever the return block of this graph has been analysed. - returnvars = self.notify.setdefault(graph.returnblock, set()) - returnvars.add(v_result) - - # generalize the function's input arguments - self.addpendingblock(graph, graph.startblock, inputcells) - - # get the (current) return value - v = graph.getreturnvar() - try: - return self.binding(v) - except KeyError: - # the function didn't reach any return statement so far. - # (some functions actually never do, they always raise exceptions) - return s_ImpossibleValue - def update_var(self, v): position_key = self.var_def[v] self.reflowfromposition(position_key) diff --git a/rpython/annotator/description.py b/rpython/annotator/description.py --- a/rpython/annotator/description.py +++ b/rpython/annotator/description.py @@ -290,7 +290,20 @@ new_args = args.unmatch_signature(self.signature, inputcells) inputcells = self.parse_arguments(new_args, graph) annotator = self.bookkeeper.annotator - result = annotator.recursivecall(graph, whence, inputcells, v_result) + if whence is not None: + annotator.record_call(graph, whence) + if v_result is not None: + # annotator.notify[graph.returnblock] is a set of variables to update + # whenever the return block of this graph has been analysed. + returnvars = annotator.notify.setdefault(graph.returnblock, set()) + returnvars.add(v_result) + + # generalize the function's input arguments + annotator.addpendinggraph(graph, inputcells) + + result = graph.getreturnvar().annotation + if result is None: + result = s_ImpossibleValue signature = getattr(self.pyobj, '_signature_', None) if signature: sigresult = enforce_signature_return(self, signature[1], result) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit