fix __future__ imports when multiple features are given
This commit is contained in:
parent
adc93b9499
commit
bdca942ffc
|
@ -89,19 +89,23 @@ class FutureTest(unittest.TestCase):
|
||||||
# the parser hack disabled. If a new keyword is introduced in
|
# the parser hack disabled. If a new keyword is introduced in
|
||||||
# 2.6, change this to refer to the new future import.
|
# 2.6, change this to refer to the new future import.
|
||||||
try:
|
try:
|
||||||
exec "from __future__ import division, with_statement; with = 0"
|
exec "from __future__ import print_function; print 0"
|
||||||
except SyntaxError:
|
except SyntaxError:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.fail("syntax error didn't occur")
|
self.fail("syntax error didn't occur")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
exec "from __future__ import (with_statement, division); with = 0"
|
exec "from __future__ import (print_function); print 0"
|
||||||
except SyntaxError:
|
except SyntaxError:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
self.fail("syntax error didn't occur")
|
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():
|
def test_main():
|
||||||
test_support.run_unittest(FutureTest)
|
test_support.run_unittest(FutureTest)
|
||||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.7 alpha 1
|
||||||
Core and Builtins
|
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
|
- Using ``nonlocal`` as a variable name will now raise a Py3k SyntaxWarning
|
||||||
because it is a reserved word in 3.x.
|
because it is a reserved word in 3.x.
|
||||||
|
|
||||||
|
|
|
@ -206,13 +206,10 @@ future_hack(parser_state *ps)
|
||||||
char *str_ch = STR(CHILD(cch, 0));
|
char *str_ch = STR(CHILD(cch, 0));
|
||||||
if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) {
|
if (strcmp(str_ch, FUTURE_WITH_STATEMENT) == 0) {
|
||||||
ps->p_flags |= CO_FUTURE_WITH_STATEMENT;
|
ps->p_flags |= CO_FUTURE_WITH_STATEMENT;
|
||||||
break;
|
|
||||||
} else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) {
|
} else if (strcmp(str_ch, FUTURE_PRINT_FUNCTION) == 0) {
|
||||||
ps->p_flags |= CO_FUTURE_PRINT_FUNCTION;
|
ps->p_flags |= CO_FUTURE_PRINT_FUNCTION;
|
||||||
break;
|
|
||||||
} else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) {
|
} else if (strcmp(str_ch, FUTURE_UNICODE_LITERALS) == 0) {
|
||||||
ps->p_flags |= CO_FUTURE_UNICODE_LITERALS;
|
ps->p_flags |= CO_FUTURE_UNICODE_LITERALS;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue