diff options
author | Thomas Wouters <thomas@python.org> | 2006-04-12 00:07:59 (GMT) |
---|---|---|
committer | Thomas Wouters <thomas@python.org> | 2006-04-12 00:07:59 (GMT) |
commit | ced6cddc031b099e995f4cbf8e9162f3951be826 (patch) | |
tree | 6b0220da41035b264748514cbede661b720f4d28 | |
parent | bb64e511c82447ce142cab812709cd3b25104ad6 (diff) | |
download | cpython-ced6cddc031b099e995f4cbf8e9162f3951be826.zip cpython-ced6cddc031b099e995f4cbf8e9162f3951be826.tar.gz cpython-ced6cddc031b099e995f4cbf8e9162f3951be826.tar.bz2 |
Part two of the fix for SF bug #1466641: Regenerate graminit.c and add test
for the bogus failure.
-rw-r--r-- | Lib/test/test_grammar.py | 5 | ||||
-rw-r--r-- | Python/graminit.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_grammar.py b/Lib/test/test_grammar.py index 45e3c49..4bb4e45 100644 --- a/Lib/test/test_grammar.py +++ b/Lib/test/test_grammar.py @@ -815,6 +815,11 @@ x = 10; t = False; g = ((i,j) for i in range(x) if t for j in range(x)) x = 5; t = True; verify([(i,j) for i in range(10) for j in range(5)] == list(g)) +# Grammar allows multiple adjacent 'if's in listcomps and genexps, +# even though it's silly. Make sure it works (ifelse broke this.) +verify([ x for x in range(10) if x % 2 if x % 3 ], [1, 5, 7]) +verify((x for x in range(10) if x % 2 if x % 3), [1, 5, 7]) + # Test ifelse expressions in various cases def _checkeval(msg, ret): "helper to check that evaluation of expressions is done correctly" diff --git a/Python/graminit.c b/Python/graminit.c index 1853ca4..ae367ce 100644 --- a/Python/graminit.c +++ b/Python/graminit.c @@ -1678,7 +1678,7 @@ static arc arcs_77_0[1] = { {91, 1}, }; static arc arcs_77_1[1] = { - {26, 2}, + {105, 2}, }; static arc arcs_77_2[2] = { {162, 3}, @@ -1735,7 +1735,7 @@ static arc arcs_80_0[1] = { {91, 1}, }; static arc arcs_80_1[1] = { - {26, 2}, + {105, 2}, }; static arc arcs_80_2[2] = { {164, 3}, |