Dict comprehension items call should now work, fixes #1129

This commit is contained in:
Dave Halter
2018-06-03 11:54:14 +02:00
parent c1014e00ca
commit e2cd228aad
2 changed files with 18 additions and 7 deletions

View File

@@ -257,14 +257,19 @@ class DictComprehension(ComprehensionMixin, Sequence):
@publish_method('items')
def _imitate_items(self):
items = ContextSet.from_iterable(
lazy_contexts = [
LazyKnownContext(
FakeSequence(
self.evaluator, u'tuple'
(LazyKnownContexts(keys), LazyKnownContexts(values))
) for keys, values in self._iterate()
self.evaluator,
u'tuple',
[LazyKnownContexts(key),
LazyKnownContexts(value)]
)
)
for key, value in self._iterate()
]
return create_evaluated_sequence_set(self.evaluator, items, sequence_type=u'list')
return ContextSet(FakeSequence(self.evaluator, u'list', lazy_contexts))
class GeneratorComprehension(ComprehensionMixin, GeneratorBase):

View File

@@ -91,6 +91,12 @@ d.items()[0][0]
#? int()
d.items()[0][1]
(a, b), = {a:1 for a in [1.0]}.items()
#? float()
a
#? int()
b
# -----------------
# tuples
# -----------------