diff options
-rw-r--r-- | Lib/test/test_builtin.py | 2 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Objects/longobject.c | 2 |
4 files changed, 6 insertions, 2 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index b561a6f..9d2725e 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -1085,7 +1085,7 @@ class BuiltinTest(unittest.TestCase): if isinstance(x, float) or \ isinstance(y, float) or \ isinstance(z, float): - self.assertRaises(TypeError, pow, x, y, z) + self.assertRaises(ValueError, pow, x, y, z) else: self.assertAlmostEqual(pow(x, y, z), 24.0) @@ -1111,6 +1111,7 @@ Armin Ronacher Case Roole Timothy Roscoe Erik Rose +Josh Rosenberg Jim Roskind Brian Rosner Guido van Rossum @@ -10,6 +10,9 @@ Release date: TBA Core and Builtins ----------------- +- Issue #21193: pow(a, b, c) now raises ValueError rather than TypeError when b + is negative. Patch by Josh Rosenberg. + - PEP 465 and Issue #21176: Add the '@' operator for matrix multiplication. - Issue #21134: Fix segfault when str is called on an uninitialized diff --git a/Objects/longobject.c b/Objects/longobject.c index 7036c0e..b749fd3 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -3841,7 +3841,7 @@ long_pow(PyObject *v, PyObject *w, PyObject *x) if (Py_SIZE(b) < 0) { /* if exponent is negative */ if (c) { - PyErr_SetString(PyExc_TypeError, "pow() 2nd argument " + PyErr_SetString(PyExc_ValueError, "pow() 2nd argument " "cannot be negative when 3rd argument specified"); goto Error; } |