Correct handling "if" in dictcomp in semantic actions for 3.x

This commit is contained in:
rocky
2020-01-15 02:36:19 -05:00
parent 3c2dafe74c
commit 5cdf057a47
10 changed files with 19 additions and 12 deletions

View File

@@ -3,12 +3,24 @@
#
# This code is RUNNABLE!
def x(s):
return {k: v
for (k, v) in s
if not k.startswith('_')
}
return {k: v for (k, v) in s if not k.startswith("_")}
# Yes, the print() is funny. This is
# to test though a 2-arg assert where
# the 2nd argument is not a string.
assert x((('_foo', None),)) == {}, print("See issue #162")
assert x((("_foo", None),)) == {}, print("See issue #162")
# From 3.7 test_dictcomps.py
assert {k: v for k in range(10) for v in range(10) if k == v} == {
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
}