check by equality for __future__ not identity (closes #14378)

This commit is contained in:
Benjamin Peterson 2012-03-22 08:19:04 -04:00
parent e112153727
commit a4e4e35783
3 changed files with 11 additions and 8 deletions

View file

@ -60,13 +60,6 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, const char *filename)
{
int i, found_docstring = 0, done = 0, prev_line = 0;
static PyObject *future;
if (!future) {
future = PyUnicode_InternFromString("__future__");
if (!future)
return 0;
}
if (!(mod->kind == Module_kind || mod->kind == Interactive_kind))
return 1;
@ -93,7 +86,8 @@ future_parse(PyFutureFeatures *ff, mod_ty mod, const char *filename)
*/
if (s->kind == ImportFrom_kind) {
if (s->v.ImportFrom.module == future) {
PyObject *modname = s->v.ImportFrom.module;
if (!PyUnicode_CompareWithASCIIString(modname, "__future__")) {
if (done) {
PyErr_SetString(PyExc_SyntaxError,
ERR_LATE_FUTURE);