Fix: Set/Dict Comprehensions don't raise an error. They are just ignored for now.

This commit is contained in:
Dave Halter
2015-11-20 14:51:52 +01:00
parent 7cc54e08c7
commit ffaf81bf1b
2 changed files with 15 additions and 3 deletions

View File

@@ -339,6 +339,9 @@ class Evaluator(object):
pass
else:
if isinstance(comp_for, tree.CompFor):
if atom.children[0] == '{':
# TODO dict/set comprehensions should be working.
return []
return set([iterable.Comprehension.from_atom(self, atom)])
return set([iterable.Array(self, atom)])

View File

@@ -47,9 +47,6 @@ left
#? str()
[a for a in {1:'x'}][0]
##? str()
{a-1:b for a,b in {1:'a', 3:1.0}.items()}[0]
# list comprehensions should also work in combination with functions
def listen(arg):
for x in arg:
@@ -118,6 +115,16 @@ left
#? int()
right
# -----------------
# set comprehensions
# -----------------
##? str()
{a - 1: b for a, b in {1: 'a', 3: 1.0}.items()}[0]
#?
{a - 1 for a in [1]}
# -----------------
# name resolution in comprehensions.
# -----------------
@@ -127,3 +134,5 @@ def x():
#? 22
[a for a in h if hio]
if hio: pass