Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r55800:fa3ef0801dbe Date: 2012-06-24 06:55 -0700 http://bitbucket.org/pypy/pypy/changeset/fa3ef0801dbe/
Log: Better handling of deepcopying of an rerased object. diff --git a/pypy/rlib/rerased.py b/pypy/rlib/rerased.py --- a/pypy/rlib/rerased.py +++ b/pypy/rlib/rerased.py @@ -48,6 +48,9 @@ def __repr__(self): return 'ErasingPairIdentity(%r)' % self.name + def __deepcopy__(self, memo): + return self + def _getdict(self, bk): try: dict = bk._erasing_pairs_tunnel diff --git a/pypy/rlib/test/test_rerased.py b/pypy/rlib/test/test_rerased.py --- a/pypy/rlib/test/test_rerased.py +++ b/pypy/rlib/test/test_rerased.py @@ -1,5 +1,7 @@ import py import sys +import copy + from pypy.rlib.rerased import * from pypy.annotation import model as annmodel from pypy.annotation.annrpython import RPythonAnnotator @@ -59,6 +61,13 @@ #assert is_integer(e) is False assert unerase_list_X(e) is l +def test_deepcopy(): + x = "hello" + e = eraseX(x) + e2 = copy.deepcopy(e) + assert uneraseX(e) is x + assert uneraseX(e2) is x + def test_annotate_1(): def f(): return eraseX(X()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit