Author: Richard Plangger <planri...@gmail.com> Branch: py3.5 Changeset: r87843:25ba0d3a5e64 Date: 2016-10-17 14:59 +0200 http://bitbucket.org/pypy/pypy/changeset/25ba0d3a5e64/
Log: if a deque is internally copied, set maxlen diff --git a/pypy/module/_collections/interp_deque.py b/pypy/module/_collections/interp_deque.py --- a/pypy/module/_collections/interp_deque.py +++ b/pypy/module/_collections/interp_deque.py @@ -177,6 +177,7 @@ def add(self, w_iterable): copy = W_Deque(self.space) + copy.maxlen = self.maxlen copy.extend(self.iter()) copy.extend(w_iterable) return self.space.wrap(copy) @@ -188,6 +189,7 @@ def mul(self, w_int): space = self.space copied = W_Deque(space) + copied.maxlen = self.maxlen num = space.int_w(w_int) for _ in range(num): @@ -201,6 +203,7 @@ def imul(self, w_int): space = self.space copy = W_Deque(space) + copy.maxlen = self.maxlen copy.extend(self.iter()) num = space.int_w(w_int) diff --git a/pypy/module/_collections/test/test_deque.py b/pypy/module/_collections/test/test_deque.py --- a/pypy/module/_collections/test/test_deque.py +++ b/pypy/module/_collections/test/test_deque.py @@ -386,3 +386,12 @@ d = deque([1,2]) assert 2 * d == deque([1,2,1,2]) assert -5 * d == deque() + + def test_deque_maxlen(self): + from _collections import deque + g = deque('abcdef', maxlen=4) + assert len(g) == 4 and g == deque('cdef') + h = deque('gh') + assert ''.join(g + h) == 'efgh' + assert g + h == deque('efgh') + _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit