From 2008775370fad2493e1b8316fdddf89321c9fb8f Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Sat, 5 Dec 2015 20:40:41 +0100 Subject: [PATCH] Fix an issue with dict lookups. --- jedi/evaluate/iterable.py | 10 ++++------ test/completion/generators.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 32a185ea..8cd7c17a 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -272,12 +272,7 @@ class Array(IterableWrapper, ArrayMixin): """Here the index is an int/str. Raises IndexError/KeyError.""" if self.type == 'dict': for key, values in self._items(): - # Because we only want the key to be a string. - keys = self._evaluator.eval_element(key) - - for k in keys: - if isinstance(k, compiled.CompiledObject) \ - and index == k.obj: + if index == key: for value in values: return self._evaluator.eval_element(value) raise KeyError('No key found in dictionary %s.' % self) @@ -434,6 +429,9 @@ class MergedArray(_FakeArray): def values(self): return unite((a.values() for a in self._arrays)) + def py__getitem__(self, index): + return unite(self.py__iter__()) + def __iter__(self): for array in self._arrays: for a in array: diff --git a/test/completion/generators.py b/test/completion/generators.py index 07c4b72f..5a01d880 100644 --- a/test/completion/generators.py +++ b/test/completion/generators.py @@ -120,7 +120,7 @@ def gen(): a, b = next(gen()) #? int() a -#? str() float() +#? str() b