Author: Richard Plangger <planri...@gmail.com>
Branch: py3.5
Changeset: r90307:d7116d6e5a29
Date: 2017-02-22 16:57 +0100
http://bitbucket.org/pypy/pypy/changeset/d7116d6e5a29/

Log:    call identifier_w on first param of call type("A\udcdcb", (), {}),
        instead of text_w. do not ignore surrogate error

diff --git a/pypy/objspace/std/test/test_typeobject.py 
b/pypy/objspace/std/test/test_typeobject.py
--- a/pypy/objspace/std/test/test_typeobject.py
+++ b/pypy/objspace/std/test/test_typeobject.py
@@ -1471,3 +1471,6 @@
         #
         assert type.__dict__['__name__'].__name__ == '__name__'
         assert type.__dict__['__doc__'].__name__ == '__doc__'
+
+    def test_type_construct_unicode_surrogate_issue(self):
+        raises(ValueError, type, 'A\udcdcb', (), {})
diff --git a/pypy/objspace/std/typeobject.py b/pypy/objspace/std/typeobject.py
--- a/pypy/objspace/std/typeobject.py
+++ b/pypy/objspace/std/typeobject.py
@@ -724,7 +724,7 @@
             return space.call_function(newfunc, w_winner, w_name, w_bases, 
w_dict)
         w_typetype = w_winner
 
-    name = space.text_w(w_name)
+    name = space.identifier_w(w_name)
     assert isinstance(name, str)
     if '\x00' in name:
         raise oefmt(space.w_ValueError, "type name must not contain null 
characters")
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to