diff options
author | Benjamin Peterson <benjamin@python.org> | 2008-10-26 20:21:13 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2008-10-26 20:21:13 (GMT) |
commit | bdca942ffcdb6e14758d3e2f7a9e9fbbfa931c06 (patch) | |
tree | 47ab776f87d60ae4372e5ef3c010fc3f7117332e | |
parent | adc93b9499cc04c41499c313a08b45ea34606e21 (diff) | |
download | cpython-bdca942ffcdb6e14758d3e2f7a9e9fbbfa931c06.zip cpython-bdca942ffcdb6e14758d3e2f7a9e9fbbfa931c06.tar.gz cpython-bdca942ffcdb6e14758d3e2f7a9e9fbbfa931c06.tar.bz2 |
fix __future__ imports when multiple features are given
-rw-r--r-- | Lib/test/test_future.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Parser/parser.c | 3 |
3 files changed, 9 insertions, 5 deletions
diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index ec60489..1432e74 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -89,19 +89,23 @@ class FutureTest(unittest.TestCase): # the parser hack disabled. If a new keyword is introduced in # 2.6, change this to refer to the new future import. try: - exec "from __future__ import division, with_statement; with = 0" + exec "from __future__ import print_function; print 0" except SyntaxError: pass else: self.fail("syntax error didn't occur") try: - exec "from __future__ import (with_statement, division); with = 0" + exec "from __future__ import (print_function); print 0" except SyntaxError: pass else: self.fail("syntax error didn't occur") + def test_multiple_features(self): + test_support.unload("test.test_future5") + from test import test_future5 + def test_main(): test_support.run_unittest(FutureTest) @@ -12,6 +12,9 @@ What's New in Python 2.7 alpha 1 Core and Builtins ----------------- +- Issue #4209: Enabling unicode_literals and the print_function in the same + __future__ import didn't work. + - Using ``nonlocal`` as a variable name will now raise a Py3k SyntaxWarning because it is a reserved word in 3.x. diff --git a/Parser/parser.c b/Parser/parser.c index 8d52153..e597ea2 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -206,13 +206,10 @@ future_hack(parser_state *ps) char *str_ch = STR(CHILD(cch, 0)); if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) { ps->p_flags |= CO_FUTURE_WITH_STATEMENT; - break; } else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) { ps->p_flags |= CO_FUTURE_PRINT_FUNCTION; - break; } else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) { ps->p_flags |= CO_FUTURE_UNICODE_LITERALS; - break; } } } |