#17032: The "global" in the "NameError: global name 'x' is not defined" error message has been removed. Patch by Ram Rachum.
This commit is contained in:
parent
ee71f4a8a4
commit
04a29554c1
|
@ -182,10 +182,10 @@ class KeywordOnlyArgTestCase(unittest.TestCase):
|
||||||
with self.assertRaises(NameError) as err:
|
with self.assertRaises(NameError) as err:
|
||||||
def f(v=a, x=b, *, y=c, z=d):
|
def f(v=a, x=b, *, y=c, z=d):
|
||||||
pass
|
pass
|
||||||
self.assertEqual(str(err.exception), "global name 'b' is not defined")
|
self.assertEqual(str(err.exception), "name 'b' is not defined")
|
||||||
with self.assertRaises(NameError) as err:
|
with self.assertRaises(NameError) as err:
|
||||||
f = lambda v=a, x=b, *, y=c, z=d: None
|
f = lambda v=a, x=b, *, y=c, z=d: None
|
||||||
self.assertEqual(str(err.exception), "global name 'b' is not defined")
|
self.assertEqual(str(err.exception), "name 'b' is not defined")
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
|
|
|
@ -969,6 +969,7 @@ Fernando Pérez
|
||||||
Pierre Quentel
|
Pierre Quentel
|
||||||
Brian Quinlan
|
Brian Quinlan
|
||||||
Anders Qvist
|
Anders Qvist
|
||||||
|
Ram Rachum
|
||||||
Jérôme Radix
|
Jérôme Radix
|
||||||
Burton Radons
|
Burton Radons
|
||||||
Jeff Ramnani
|
Jeff Ramnani
|
||||||
|
|
|
@ -10,6 +10,9 @@ What's New in Python 3.4.0 Alpha 1?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
|
||||||
|
error message has been removed. Patch by Ram Rachum.
|
||||||
|
|
||||||
- Issue #17223: array module: Fix a crasher when converting an array containing
|
- Issue #17223: array module: Fix a crasher when converting an array containing
|
||||||
invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
|
invalid characters (outside range [U+0000; U+10ffff]) to Unicode:
|
||||||
repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
|
repr(array), str(array) and array.tounicode(). Patch written by Manuel Jacob.
|
||||||
|
|
|
@ -142,8 +142,6 @@ static PyObject * special_lookup(PyObject *, _Py_Identifier *);
|
||||||
|
|
||||||
#define NAME_ERROR_MSG \
|
#define NAME_ERROR_MSG \
|
||||||
"name '%.200s' is not defined"
|
"name '%.200s' is not defined"
|
||||||
#define GLOBAL_NAME_ERROR_MSG \
|
|
||||||
"global name '%.200s' is not defined"
|
|
||||||
#define UNBOUNDLOCAL_ERROR_MSG \
|
#define UNBOUNDLOCAL_ERROR_MSG \
|
||||||
"local variable '%.200s' referenced before assignment"
|
"local variable '%.200s' referenced before assignment"
|
||||||
#define UNBOUNDFREE_ERROR_MSG \
|
#define UNBOUNDFREE_ERROR_MSG \
|
||||||
|
@ -2140,7 +2138,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
||||||
err = PyDict_DelItem(f->f_globals, name);
|
err = PyDict_DelItem(f->f_globals, name);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
format_exc_check_arg(
|
format_exc_check_arg(
|
||||||
PyExc_NameError, GLOBAL_NAME_ERROR_MSG, name);
|
PyExc_NameError, NAME_ERROR_MSG, name);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
DISPATCH();
|
DISPATCH();
|
||||||
|
@ -2208,7 +2206,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
||||||
if (v == NULL) {
|
if (v == NULL) {
|
||||||
if (!PyErr_Occurred())
|
if (!PyErr_Occurred())
|
||||||
format_exc_check_arg(PyExc_NameError,
|
format_exc_check_arg(PyExc_NameError,
|
||||||
GLOBAL_NAME_ERROR_MSG, name);
|
NAME_ERROR_MSG, name);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
Py_INCREF(v);
|
Py_INCREF(v);
|
||||||
|
@ -2222,7 +2220,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)
|
||||||
if (PyErr_ExceptionMatches(PyExc_KeyError))
|
if (PyErr_ExceptionMatches(PyExc_KeyError))
|
||||||
format_exc_check_arg(
|
format_exc_check_arg(
|
||||||
PyExc_NameError,
|
PyExc_NameError,
|
||||||
GLOBAL_NAME_ERROR_MSG, name);
|
NAME_ERROR_MSG, name);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue