[pypy-commit] pypy py3k: Undo 5364600: dict.pop() was implemented independently in trunk.
amauryfa
noreply at buildbot.pypy.org
Wed Jan 23 23:41:52 CET 2013
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: py3k
Changeset: r60408:05813142f683
Date: 2013-01-23 23:28 +0100
http://bitbucket.org/pypy/pypy/changeset/05813142f683/
Log: Undo 5364600: dict.pop() was implemented independently in trunk.
diff --git a/rpython/annotator/unaryop.py b/rpython/annotator/unaryop.py
--- a/rpython/annotator/unaryop.py
+++ b/rpython/annotator/unaryop.py
@@ -398,7 +398,6 @@
return dct.dictdef.read_value()
method_setdefault = method_get
- method_pop = method_get
def method_copy(dct):
return SomeDict(dct.dictdef)
diff --git a/rpython/rtyper/lltypesystem/rdict.py b/rpython/rtyper/lltypesystem/rdict.py
--- a/rpython/rtyper/lltypesystem/rdict.py
+++ b/rpython/rtyper/lltypesystem/rdict.py
@@ -274,13 +274,6 @@
v_res = hop.gendirectcall(ll_setdefault, v_dict, v_key, v_default)
return self.recast_value(hop.llops, v_res)
- def rtype_method_pop(self, hop):
- v_dict, v_key, v_default = hop.inputargs(self, self.key_repr,
- self.value_repr)
- hop.exception_cannot_occur()
- v_res = hop.gendirectcall(ll_dict_pop, v_dict, v_key, v_default)
- return self.recast_value(hop.llops, v_res)
-
def rtype_method_copy(self, hop):
v_dict, = hop.inputargs(self)
hop.exception_cannot_occur()
@@ -518,15 +511,6 @@
raise KeyError
_ll_dict_del(d, i)
-def ll_dict_pop(d, key, default):
- i = ll_dict_lookup(d, key, d.keyhash(key))
- if not i & HIGHEST_BIT:
- value = ll_get_value(d, i)
- _ll_dict_del(d, i)
- return value
- else:
- return default
-
@jit.look_inside_iff(lambda d, i: jit.isvirtual(d) and jit.isconstant(i))
def _ll_dict_del(d, i):
d.entries.mark_deleted(i)
diff --git a/rpython/rtyper/ootypesystem/rdict.py b/rpython/rtyper/ootypesystem/rdict.py
--- a/rpython/rtyper/ootypesystem/rdict.py
+++ b/rpython/rtyper/ootypesystem/rdict.py
@@ -100,13 +100,6 @@
v_res = hop.gendirectcall(ll_dict_setdefault, v_dict, v_key, v_default)
return self.recast_value(hop.llops, v_res)
- def rtype_method_pop(self, hop):
- v_dict, v_key, v_default = hop.inputargs(self, self.key_repr,
- self.value_repr)
- hop.exception_cannot_occur()
- v_res = hop.gendirectcall(ll_dict_pop, v_dict, v_key, v_default)
- return self.recast_value(hop.llops, v_res)
-
def rtype_method_copy(self, hop):
v_dict, = hop.inputargs(self)
cDICT = hop.inputconst(ootype.Void, self.lowleveltype)
@@ -346,14 +339,6 @@
d.ll_set(key, default)
return default
-def ll_dict_pop(d, key, default):
- if d.ll_contains(key):
- value = d.ll_get(key)
- d.ll_remove(key)
- return value
- else:
- return default
-
def _make_ll_keys_values_items(kind):
def ll_dict_kvi(LIST, d):
length = d.ll_length()
diff --git a/rpython/rtyper/test/test_rdict.py b/rpython/rtyper/test/test_rdict.py
--- a/rpython/rtyper/test/test_rdict.py
+++ b/rpython/rtyper/test/test_rdict.py
@@ -181,16 +181,6 @@
res = self.interpret(func, ())
assert res == 422
- def test_dict_pop(self):
- def func():
- dic = {}
- x1 = dic.pop('hi', 42)
- dic['blah'] = 1
- x2 = dic.pop('blah', 2)
- return len(dic) * 100 + x1 * 10 + x2
- res = self.interpret(func, ())
- assert res == 421
-
def test_dict_setdefault(self):
def f():
d = {}
More information about the pypy-commit
mailing list