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') @publish_method('items')
def _imitate_items(self): def _imitate_items(self):
items = ContextSet.from_iterable( lazy_contexts = [
LazyKnownContext(
FakeSequence( FakeSequence(
self.evaluator, u'tuple' self.evaluator,
(LazyKnownContexts(keys), LazyKnownContexts(values)) u'tuple',
) for keys, values in self._iterate() [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): class GeneratorComprehension(ComprehensionMixin, GeneratorBase):

View File

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