Author: Ronan Lamy <[email protected]>
Branch: py3.5
Changeset: r88325:8dd2ae08247a
Date: 2016-11-11 19:12 +0000
http://bitbucket.org/pypy/pypy/changeset/8dd2ae08247a/

Log:    Give correct error message for unicode array initializers and remove
        confusing special case

diff --git a/pypy/module/array/interp_array.py 
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -41,6 +41,18 @@
 
     if len(__args__.arguments_w) > 0:
         w_initializer = __args__.arguments_w[0]
+        if tc != 'u':
+            if space.isinstance_w(w_initializer, space.w_unicode):
+                raise oefmt(
+                    space.w_TypeError,
+                    "cannot use a str to initialize an array with "
+                    "typecode '%s'", tc)
+            elif (isinstance(w_initializer, W_ArrayBase)
+                    and w_initializer.typecode == 'u'):
+                raise oefmt(
+                    space.w_TypeError,
+                    "cannot use a unicode array to initialize an array with "
+                    "typecode '%s'", tc)
         if isinstance(w_initializer, W_ArrayBase):
             a.extend(w_initializer, True)
         elif space.type(w_initializer) is space.w_list:
@@ -719,11 +731,7 @@
                     except OperationError as e:
                         if e.async(space):
                             raise
-                        if space.isinstance_w(w_item, space.w_unicode):
-                            msg = ("cannot use a str to initialize an array"
-                                   " with typecode '" + mytype.typecode + "'")
-                        else:
-                            msg = "array item must be " + mytype.unwrap[:-2]
+                        msg = "array item must be " + mytype.unwrap[:-2]
                         raise OperationError(space.w_TypeError, 
space.wrap(msg))
                 else:
                     raise
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to