Author: Ronan Lamy <[email protected]>
Branch: anntype
Changeset: r80653:288e262d9eef
Date: 2015-11-12 22:53 +0000
http://bitbucket.org/pypy/pypy/changeset/288e262d9eef/

Log:    simplify code

diff --git a/rpython/annotator/annrpython.py b/rpython/annotator/annrpython.py
--- a/rpython/annotator/annrpython.py
+++ b/rpython/annotator/annrpython.py
@@ -1,6 +1,7 @@
 from __future__ import absolute_import
 
 import types
+from collections import defaultdict
 
 from rpython.tool.ansi_print import ansi_log
 from rpython.tool.pairtype import pair
@@ -391,8 +392,7 @@
         if hasattr(s_out, 'is_type_of'):
             renamed_is_type_of = []
             for v in s_out.is_type_of:
-                new_vs = renaming.get(v, [])
-                renamed_is_type_of += new_vs
+                renamed_is_type_of += renaming[v]
             assert s_out.knowntype is type
             newcell = annmodel.SomeType()
             if s_out.is_constant():
@@ -533,9 +533,10 @@
 
         ignore_link = False
         inputs_s = []
-        renaming = {}
+        renaming = defaultdict(list)
         for v_out, v_input in zip(link.args, link.target.inputargs):
-            renaming.setdefault(v_out, []).append(v_input)
+            renaming[v_out].append(v_input)
+
         for v_out in link.args:
             s_out = self.annotation(v_out)
             if v_out in constraints:
@@ -567,22 +568,20 @@
         if isinstance(v_last_exc_type, Variable):
             self.setbinding(v_last_exc_type, SomeTypeOf(v_last_exc_value))
 
-        s_last_exc_type = annmodel.SomeType()
-        if isinstance(v_last_exc_type, Constant):
-            s_last_exc_type.const = v_last_exc_type.value
-        last_exc_value_vars = []
 
         ignore_link = False
         inputs_s = []
-        renaming = {}
+        renaming = defaultdict(list)
         for v_out, v_input in zip(link.args, link.target.inputargs):
-            renaming.setdefault(v_out, []).append(v_input)
+            renaming[v_out].append(v_input)
+
         for v_out, v_input in zip(link.args, link.target.inputargs):
             if v_out == v_last_exc_type:
-                inputs_s.append(s_last_exc_type)
-            elif v_out == v_last_exc_value:
-                inputs_s.append(s_last_exc_value)
-                last_exc_value_vars.append(v_input)
+                s_out = annmodel.SomeType()
+                s_out.is_type_of = renaming[v_last_exc_value]
+                if isinstance(v_last_exc_type, Constant):
+                    s_out.const = v_last_exc_type.value
+                inputs_s.append(s_out)
             else:
                 s_out = self.annotation(v_out)
                 if v_out in constraints:
@@ -595,7 +594,6 @@
                 inputs_s.append(s_out)
         if ignore_link:
             return
-        s_last_exc_type.is_type_of = last_exc_value_vars
 
         self.links_followed[link] = True
         self.addpendingblock(graph, link.target, inputs_s)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to