summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_syntax.py2
-rw-r--r--Python/symtable.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index 6e60706..e978a6e 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -5,7 +5,7 @@ Here's an example of the sort of thing that is tested.
>>> def f(x):
... global x
Traceback (most recent call last):
-SyntaxError: name 'x' is local and global
+SyntaxError: name 'x' is local and global (<doctest test.test_syntax[0]>, line 1)
The tests are all raise SyntaxErrors. They were created by checking
each C call that raises SyntaxError. There are several modules that
diff --git a/Python/symtable.c b/Python/symtable.c
index cc3c774..2f0b889 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -373,6 +373,9 @@ analyze_name(PySTEntryObject *ste, PyObject *dict, PyObject *name, long flags,
PyErr_Format(PyExc_SyntaxError,
"name '%s' is local and global",
PyString_AS_STRING(name));
+ PyErr_SyntaxLocation(ste->ste_table->st_filename,
+ ste->ste_lineno);
+
return 0;
}
SET_SCOPE(dict, name, GLOBAL_EXPLICIT);