diff --git a/jedi/evaluate_representation.py b/jedi/evaluate_representation.py index 4c0dd311..371c76d0 100644 --- a/jedi/evaluate_representation.py +++ b/jedi/evaluate_representation.py @@ -630,7 +630,7 @@ class Execution(Executable): arrays = evaluate.follow_call_list(stmt.get_commands()[1:]) # *args must be some sort of an array, otherwise -> ignore for array in arrays: - for field_stmt in array: + for field_stmt in array: # yield from plz! yield None, field_stmt # **kwargs elif stmt.get_commands()[0] == '**': @@ -863,11 +863,19 @@ class Array(use_metaclass(cache.CachedMetaClass, pr.Base)): def __getattr__(self, name): if name not in ['type', 'start_pos', 'get_only_subelement', 'parent', - 'get_parent_until', 'items', - '__iter__', '__len__', '__getitem__']: + 'get_parent_until', 'items']: raise AttributeError('Strange access on %s: %s.' % (self, name)) return getattr(self._array, name) + def __getitem__(self): + return self._array.__getitem__() + + def __iter__(self): + return self._array.__iter__() + + def __len__(self): + return self._array.__len__() + def __repr__(self): return "" % (type(self).__name__, self._array) diff --git a/jedi/parsing_representation.py b/jedi/parsing_representation.py index 6e846c31..016690cf 100644 --- a/jedi/parsing_representation.py +++ b/jedi/parsing_representation.py @@ -767,7 +767,7 @@ class Statement(Simple): and not tok in ['>=', '<=', '==', '!='] def parse_array(token_iterator, array_type, start_pos, add_el=None): - arr = Array(self.module, start_pos, array_type) + arr = Array(self.module, start_pos, array_type, self) if add_el is not None: arr.add_statement(add_el)