#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:
Ezio Melotti 2013-03-03 15:12:44 +02:00
parent ee71f4a8a4
commit 04a29554c1
4 changed files with 9 additions and 7 deletions

View File

@ -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():

View File

@ -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

View File

@ -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.

View File

@ -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;
} }
} }