[pypy-svn] r32318 - pypy/dist/pypy/annotation

fijal at codespeak.net fijal at codespeak.net
Thu Sep 14 17:14:22 CEST 2006


Author: fijal
Date: Thu Sep 14 17:14:19 2006
New Revision: 32318

Modified:
   pypy/dist/pypy/annotation/bookkeeper.py
Log:
Reverted stupid fix.


Modified: pypy/dist/pypy/annotation/bookkeeper.py
==============================================================================
--- pypy/dist/pypy/annotation/bookkeeper.py	(original)
+++ pypy/dist/pypy/annotation/bookkeeper.py	Thu Sep 14 17:14:19 2006
@@ -455,31 +455,24 @@
         elif tp is float:
             result = SomeFloat()
         elif tp is list:
-            # try to get listdef
-            try:
-                listdef = self.listdefs[self.position_key]
-            except KeyError:
-                listdef = ListDef(self, s_ImpossibleValue)
-                for e in x:
-                    listdef.generalize(self.annotation_from_example(e))
-                self.listdefs[self.position_key] = listdef
+            listdef = ListDef(self, s_ImpossibleValue)
+            for e in x:
+                listdef.generalize(self.annotation_from_example(e))
+            self.listdefs[self.position_key] = listdef
             result = SomeList(listdef)
         elif tp is dict or tp is r_dict:
-            try:
-                dictdef = self.dictdefs[self.position_key]
-            except KeyError:
-                dictdef = DictDef(self, 
-                    s_ImpossibleValue,
-                    s_ImpossibleValue,
-                    is_r_dict = tp is r_dict)
-                if tp is r_dict:
-                    s_eqfn = self.immutablevalue(x.key_eq)
-                    s_hashfn = self.immutablevalue(x.key_hash)
-                    dictdef.dictkey.update_rdict_annotations(s_eqfn,
-                                                                s_hashfn)
-                for ek, ev in x.iteritems():
-                    dictdef.generalize_key(self.annotation_from_example(ek))
-                    dictdef.generalize_value(self.annotation_from_example(ev))
+            dictdef = DictDef(self, 
+                s_ImpossibleValue,
+                s_ImpossibleValue,
+                is_r_dict = tp is r_dict)
+            if tp is r_dict:
+                s_eqfn = self.immutablevalue(x.key_eq)
+                s_hashfn = self.immutablevalue(x.key_hash)
+                dictdef.dictkey.update_rdict_annotations(s_eqfn,
+                    s_hashfn)
+            for ek, ev in x.iteritems():
+                dictdef.generalize_key(self.annotation_from_example(ek))
+                dictdef.generalize_value(self.annotation_from_example(ev))
             result = SomeDict(dictdef)
         elif ishashable(x) and x in BUILTIN_ANALYZERS:
             _module = getattr(x,"__module__","unknown")



More information about the Pypy-commit mailing list