Index: Python/ast.c =================================================================== --- Python/ast.c (revision 61465) +++ Python/ast.c (working copy) @@ -353,6 +353,14 @@ !strcmp(PyString_AS_STRING(e->v.Attribute.attr), "None")) { return ast_error(n, "assignment to None"); } + if (Py_Py3kWarningFlag && + ctx == Store && + (!strcmp(PyString_AS_STRING(e->v.Attribute.attr), "True") || + !strcmp(PyString_AS_STRING(e->v.Attribute.attr), "False")) + ) { + PyErr_Warn(PyExc_DeprecationWarning, + "Assignment to True or False is forbidden in 3.x."); + } e->v.Attribute.ctx = ctx; break; case Subscript_kind: @@ -363,6 +371,14 @@ !strcmp(PyString_AS_STRING(e->v.Name.id), "None")) { return ast_error(n, "assignment to None"); } + if (Py_Py3kWarningFlag && + ctx == Store && + (!strcmp(PyString_AS_STRING(e->v.Name.id), "True") || + !strcmp(PyString_AS_STRING(e->v.Name.id), "False")) + ) { + PyErr_Warn(PyExc_DeprecationWarning, + "Assignment to True or False is forbidden in 3.x."); + } e->v.Name.ctx = ctx; break; case List_kind: