Author: Armin Rigo <ar...@tunes.org>
Branch: 
Changeset: r51772:66a54c1c81de
Date: 2012-01-26 09:59 +0100
http://bitbucket.org/pypy/pypy/changeset/66a54c1c81de/

Log:    Fix.

diff --git a/pypy/rlib/objectmodel.py b/pypy/rlib/objectmodel.py
--- a/pypy/rlib/objectmodel.py
+++ b/pypy/rlib/objectmodel.py
@@ -145,7 +145,13 @@
         self.compute_fn = compute_fn
 
     def __repr__(self):
-        return '%s(%r)' % (self.__class__.__name__, self.compute_fn)
+        # repr(self.compute_fn) can arrive back here in an
+        # infinite recursion
+        try:
+            name = self.compute_fn.__name__
+        except (AttributeError, TypeError):
+            name = hex(id(self.compute_fn))
+        return '%s(%r)' % (self.__class__.__name__, name)
 
     def annotation(self):
         from pypy.annotation import model
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to