- Finally fixed the bug in compile() and exec where a string ending
with an indented code block but no newline would raise SyntaxError.
This would have been a four-line change in parsetok.c... Except
codeop.py depends on this behavior, so a compilation flag had to be
invented that causes the tokenizer to revert to the old behavior;
this required extra changes to 2 .h files, 2 .c files, and 2 .py
files. (Fixes SF bug #501622.)
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
index 1fe7f52..1812fbc 100644
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -89,6 +89,15 @@
expect_error("1e-")
expect_error("3-4e/21")
+if verbose:
+ print "testing compile() of indented block w/o trailing newline"
+
+s = """
+if 1:
+ if 2:
+ pass"""
+compile(s, "<string>", "exec")
+
if verbose:
print "testing literals with leading zeroes"