Author: Amaury Forgeot d'Arc <amaur...@gmail.com>
Branch: py3.3
Changeset: r75249:c27d75f38838
Date: 2015-01-05 22:35 +0100
http://bitbucket.org/pypy/pypy/changeset/c27d75f38838/

Log:    Function.__repr__ now uses the __qualname__ attribute.

diff --git a/pypy/interpreter/astcompiler/codegen.py 
b/pypy/interpreter/astcompiler/codegen.py
--- a/pypy/interpreter/astcompiler/codegen.py
+++ b/pypy/interpreter/astcompiler/codegen.py
@@ -307,7 +307,7 @@
 
     def _make_function(self, code, num_defaults=0, qualname=None):
         """Emit the opcodes to turn a code object into a function."""
-        w_qualname = self.space.wrap(qualname or code.co_name)
+        w_qualname = self.space.wrap((qualname or 
code.co_name).decode('utf-8'))
         if code.co_freevars:
             # Load cell and free vars to pass on.
             for free in code.co_freevars:
diff --git a/pypy/interpreter/function.py b/pypy/interpreter/function.py
--- a/pypy/interpreter/function.py
+++ b/pypy/interpreter/function.py
@@ -247,8 +247,7 @@
         return self.call_args(__args__)
 
     def descr_function_repr(self):
-        return self.getrepr(self.space, u'function %s' %
-                            (self.name.decode('utf-8'),))
+        return self.getrepr(self.space, u'function %s' % self.qualname)
 
     # delicate
     _all = {'': None}
diff --git a/pypy/interpreter/test/test_function.py 
b/pypy/interpreter/test/test_function.py
--- a/pypy/interpreter/test/test_function.py
+++ b/pypy/interpreter/test/test_function.py
@@ -153,7 +153,8 @@
         """
         def &#26085;&#26412;():
             pass
-        assert repr(&#26085;&#26412;).startswith('<function &#26085;&#26412; 
at ')
+        assert repr(&#26085;&#26412;).startswith(
+            '<function test_func_nonascii.<locals>.&#26085;&#26412; at ')
         assert &#26085;&#26412;.__name__ == '&#26085;&#26412;'
         """
 
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to