Author: Ronan Lamy <[email protected]>
Branch: NonConstant
Changeset: r69069:0d5d13d5e57a
Date: 2014-02-01 17:53 +0000
http://bitbucket.org/pypy/pypy/changeset/0d5d13d5e57a/
Log: kill unused option 'need_const'
diff --git a/rpython/annotator/bookkeeper.py b/rpython/annotator/bookkeeper.py
--- a/rpython/annotator/bookkeeper.py
+++ b/rpython/annotator/bookkeeper.py
@@ -205,7 +205,7 @@
def immutableconstant(self, const):
return self.immutablevalue(const.value)
- def immutablevalue(self, x, need_const=True):
+ def immutablevalue(self, x):
"""The most precise SomeValue instance that contains the
immutable value x."""
# convert unbound methods to the underlying function
@@ -241,73 +241,51 @@
elif tp is bytearray:
result = SomeByteArray()
elif tp is tuple:
- result = SomeTuple(items = [self.immutablevalue(e, need_const) for
e in x])
+ result = SomeTuple(items = [self.immutablevalue(e) for e in x])
elif tp is float:
result = SomeFloat()
elif tp is list:
- if need_const:
- key = Constant(x)
- try:
- return self.immutable_cache[key]
- except KeyError:
- result = SomeList(ListDef(self, s_ImpossibleValue))
- self.immutable_cache[key] = result
- for e in x:
- result.listdef.generalize(self.immutablevalue(e))
- result.const_box = key
- return result
- else:
- listdef = ListDef(self, s_ImpossibleValue)
+ key = Constant(x)
+ try:
+ return self.immutable_cache[key]
+ except KeyError:
+ result = SomeList(ListDef(self, s_ImpossibleValue))
+ self.immutable_cache[key] = result
for e in x:
- listdef.generalize(self.immutablevalue(e, False))
- result = SomeList(listdef)
+ result.listdef.generalize(self.immutablevalue(e))
+ result.const_box = key
+ return result
elif tp is dict or tp is r_dict or tp is SomeOrderedDict.knowntype:
if tp is SomeOrderedDict.knowntype:
cls = SomeOrderedDict
else:
cls = SomeDict
- if need_const:
- key = Constant(x)
- try:
- return self.immutable_cache[key]
- except KeyError:
- result = cls(DictDef(self,
- s_ImpossibleValue,
- s_ImpossibleValue,
- is_r_dict = tp is r_dict))
- self.immutable_cache[key] = result
- if tp is r_dict:
- s_eqfn = self.immutablevalue(x.key_eq)
- s_hashfn = self.immutablevalue(x.key_hash)
- result.dictdef.dictkey.update_rdict_annotations(s_eqfn,
-
s_hashfn)
- seen_elements = 0
- while seen_elements != len(x):
- items = x.items()
- for ek, ev in items:
-
result.dictdef.generalize_key(self.immutablevalue(ek))
-
result.dictdef.generalize_value(self.immutablevalue(ev))
- result.dictdef.seen_prebuilt_key(ek)
- seen_elements = len(items)
- # if the dictionary grew during the iteration,
- # start over again
- result.const_box = key
- return result
- else:
- dictdef = DictDef(self,
- s_ImpossibleValue,
- s_ImpossibleValue,
- is_r_dict = tp is r_dict)
+ key = Constant(x)
+ try:
+ return self.immutable_cache[key]
+ except KeyError:
+ result = cls(DictDef(self,
+ s_ImpossibleValue,
+ s_ImpossibleValue,
+ is_r_dict = tp is r_dict))
+ self.immutable_cache[key] = result
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.immutablevalue(ek, False))
- dictdef.generalize_value(self.immutablevalue(ev, False))
- dictdef.seen_prebuilt_key(ek)
- result = cls(dictdef)
+ result.dictdef.dictkey.update_rdict_annotations(s_eqfn,
+ s_hashfn)
+ seen_elements = 0
+ while seen_elements != len(x):
+ items = x.items()
+ for ek, ev in items:
+ result.dictdef.generalize_key(self.immutablevalue(ek))
+
result.dictdef.generalize_value(self.immutablevalue(ev))
+ result.dictdef.seen_prebuilt_key(ek)
+ seen_elements = len(items)
+ # if the dictionary grew during the iteration,
+ # start over again
+ result.const_box = key
+ return result
elif tp is weakref.ReferenceType:
x1 = x()
if x1 is None:
@@ -332,11 +310,11 @@
if hasattr(x, 'im_self') and hasattr(x, 'im_func'):
# on top of PyPy, for cases like 'l.append' where 'l' is a
# global constant list, the find_method() returns non-None
- s_self = self.immutablevalue(x.im_self, need_const)
+ s_self = self.immutablevalue(x.im_self)
result = s_self.find_method(x.im_func.__name__)
elif hasattr(x, '__self__') and x.__self__ is not None:
# for cases like 'l.append' where 'l' is a global constant list
- s_self = self.immutablevalue(x.__self__, need_const)
+ s_self = self.immutablevalue(x.__self__)
result = s_self.find_method(x.__name__)
assert result is not None
else:
@@ -360,8 +338,7 @@
return s_None
else:
raise Exception("Don't know how to represent %r" % (x,))
- if need_const:
- result.const = x
+ result.const = x
return result
def getdesc(self, pyobj):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit