From: Jeremy Hylton Date: Fri, 4 Feb 2005 18:38:43 +0000 (+0000) Subject: Fix bug that allowed future statements virtually anywhere in a module. X-Git-Tag: v2.5a0~2059 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9add9a483166c4c2494ccd7d9402eb3d497aa4f;p=python Fix bug that allowed future statements virtually anywhere in a module. If we exit via the break here, we need to set ff_last_lineno or FUTURE_POSSIBLE() will remain true. The bug affected statements containing a variety of expressions, but not all expressions. It has been present since Python 2.2. --- diff --git a/Python/future.c b/Python/future.c index 20d8dd2909..95d6a5c9a3 100644 --- a/Python/future.c +++ b/Python/future.c @@ -93,7 +93,6 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename) { int i, r; loop: - switch (TYPE(n)) { case single_input: @@ -222,6 +221,7 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename) n = CHILD(n, 0); goto loop; } + ff->ff_last_lineno = n->n_lineno; break; case atom: @@ -258,4 +258,3 @@ PyNode_Future(node *n, const char *filename) } return ff; } -