Author: Armin Rigo <[email protected]>
Branch: array-overallocation-in-nursery
Changeset: r67496:a9b51ff40cf6
Date: 2013-10-22 11:46 +0200
http://bitbucket.org/pypy/pypy/changeset/a9b51ff40cf6/
Log: Improve the repr
diff --git a/rpython/rtyper/lltypesystem/lltype.py
b/rpython/rtyper/lltypesystem/lltype.py
--- a/rpython/rtyper/lltypesystem/lltype.py
+++ b/rpython/rtyper/lltypesystem/lltype.py
@@ -1715,6 +1715,10 @@
def __str__(self):
items = self.items
+ extra = ''
+ if self._TYPE._is_overallocated_array():
+ extra = ' allocated=%d' % len(items)
+ items = items[:self.used_len]
if len(items) > 20:
items = items[:12] + items[-5:]
skipped_at = 12
@@ -1723,7 +1727,7 @@
items = [self._str_item(item) for item in items]
if skipped_at:
items.insert(skipped_at, '(...)')
- return 'array [ %s ]' % (', '.join(items),)
+ return 'array%s [ %s ]' % (extra, ', '.join(items))
def getlength(self):
return len(self.items)
diff --git a/rpython/rtyper/lltypesystem/test/test_lltype.py
b/rpython/rtyper/lltypesystem/test/test_lltype.py
--- a/rpython/rtyper/lltypesystem/test/test_lltype.py
+++ b/rpython/rtyper/lltypesystem/test/test_lltype.py
@@ -824,6 +824,9 @@
py.test.raises(IndexError, "a[3] = 43")
a.used_length = 5
py.test.raises(UninitializedMemoryAccess, "a[3]")
+ a[0] = 100
+ a[3] = 200
+ assert repr(a) == '<* array allocated=10 [ 100, #, #, 200, # ]>'
class TestTrackAllocation:
def test_automatic_tracking(self):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit