mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
Make the error msgs in our pow() implementations consistent.
This commit is contained in:
parent
d893fd68bd
commit
4c483c4d8e
3 changed files with 15 additions and 8 deletions
|
|
@ -495,8 +495,8 @@ float_pow(PyObject *v, PyObject *w, PyObject *z)
|
|||
double iv, iw, ix;
|
||||
|
||||
if ((PyObject *)z != Py_None) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"3rd argument to floating pow() must be None");
|
||||
PyErr_SetString(PyExc_TypeError, "pow() 3rd argument not "
|
||||
"allowed unless all other arguments are integers");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -589,8 +589,8 @@ int_pow(PyIntObject *v, PyIntObject *w, PyIntObject *z)
|
|||
CONVERT_TO_LONG(w, iw);
|
||||
if (iw < 0) {
|
||||
if ((PyObject *)z != Py_None) {
|
||||
PyErr_SetString(PyExc_TypeError, "integer pow() arg "
|
||||
"3 must not be specified when arg 2 is < 0");
|
||||
PyErr_SetString(PyExc_TypeError, "pow() 2nd argument "
|
||||
"cannot be negative when 3rd argument specified");
|
||||
return NULL;
|
||||
}
|
||||
/* Return a float. This works because we know that
|
||||
|
|
@ -603,7 +603,7 @@ int_pow(PyIntObject *v, PyIntObject *w, PyIntObject *z)
|
|||
CONVERT_TO_LONG(z, iz);
|
||||
if (iz == 0) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"pow() arg 3 cannot be 0");
|
||||
"pow() 3rd argument cannot be 0");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1686,14 +1686,21 @@ long_pow(PyObject *v, PyObject *w, PyObject *x)
|
|||
return Py_NotImplemented;
|
||||
}
|
||||
|
||||
if (c != Py_None && ((PyLongObject *)c)->ob_size == 0) {
|
||||
PyErr_SetString(PyExc_ValueError,
|
||||
"pow() 3rd argument cannot be 0");
|
||||
z = NULL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
size_b = b->ob_size;
|
||||
if (size_b < 0) {
|
||||
Py_DECREF(a);
|
||||
Py_DECREF(b);
|
||||
Py_DECREF(c);
|
||||
if (x != Py_None) {
|
||||
PyErr_SetString(PyExc_TypeError, "integer pow() arg "
|
||||
"3 must not be specified when arg 2 is < 0");
|
||||
PyErr_SetString(PyExc_TypeError, "pow() 2nd argument "
|
||||
"cannot be negative when 3rd argument specified");
|
||||
return NULL;
|
||||
}
|
||||
/* Return a float. This works because we know that
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue