Make it illegal to assign to __debug__ as per Guido's request.

This commit is contained in:
Jeremy Hylton 2001-03-23 14:08:38 +00:00
parent e280c06d59
commit 897b82123d
1 changed files with 12 additions and 1 deletions

View File

@ -66,6 +66,9 @@ int Py_OptimizeFlag = 0;
#define LATE_FUTURE \
"from __future__ imports must occur at the beginning of the file"
#define ASSIGN_DEBUG \
"can not assign to __debug__"
#define MANGLE_LEN 256
#define OFF(x) offsetof(PyCodeObject, x)
@ -5181,8 +5184,16 @@ symtable_assign(struct symtable *st, node *n, int flag)
if (TYPE(tmp) == LPAR || TYPE(tmp) == LSQB) {
n = CHILD(n, 1);
goto loop;
} else if (TYPE(tmp) == NAME)
} else if (TYPE(tmp) == NAME) {
if (strcmp(STR(tmp), "__debug__") == 0) {
PyErr_SetString(PyExc_SyntaxError,
ASSIGN_DEBUG);
PyErr_SyntaxLocation(st->st_filename,
n->n_lineno);
st->st_errors++;
}
symtable_add_def(st, STR(tmp), DEF_LOCAL | flag);
}
return;
case dotted_as_name:
if (NCH(n) == 3)