Replaced 3 instances of "iter() of non-sequence" with
"iteration over non-sequence".
Restored "unpack non-sequence" for stuff like "a, b = 1".
if (f == NULL) {
if (PySequence_Check(o))
return PySeqIter_New(o);
- PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+ PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
return NULL;
}
else {
}
PyErr_Clear();
if ((func = instance_getattr(self, getitemstr)) == NULL) {
- PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+ PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
return NULL;
}
Py_DECREF(func);
PyErr_Clear();
func = lookup_method(self, "__getitem__", &getitem_str);
if (func == NULL) {
- PyErr_SetString(PyExc_TypeError, "iter() of non-sequence");
+ PyErr_SetString(PyExc_TypeError, "iteration over non-sequence");
return NULL;
}
Py_DECREF(func);
else if (unpack_iterable(v, oparg,
stack_pointer + oparg))
stack_pointer += oparg;
- else
+ else {
+ if (PyErr_ExceptionMatches(PyExc_TypeError))
+ PyErr_SetString(PyExc_TypeError,
+ "unpack non-sequence");
why = WHY_EXCEPTION;
+ }
Py_DECREF(v);
break;