[pypy-commit] pypy py3.5: Give correct error message for unicode array initializers and remove confusing special case
rlamy
pypy.commits at gmail.com
Fri Nov 11 14:13:04 EST 2016
Author: Ronan Lamy <ronan.lamy at gmail.com>
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
More information about the pypy-commit
mailing list