diff --git a/jedi/evaluate/param.py b/jedi/evaluate/param.py index 14cb0bad..3a0424f1 100644 --- a/jedi/evaluate/param.py +++ b/jedi/evaluate/param.py @@ -322,7 +322,7 @@ def _gen_param_name_copy(func, var_args, param, keys=(), values=(), array_type=N # create an Array (-> needed for *args/**kwargs tuples/dicts) arr = pr.Array(helpers.FakeSubModule, start_pos, array_type, parent) - arr.values = values + arr.values = list(values) # Arrays only work with list. key_stmts = [] for key in keys: key_stmts.append(helpers.FakeStatement([key], start_pos)) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index b2609681..4589ea20 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -233,13 +233,18 @@ class InstanceElement(use_metaclass(CachedMetaClass, pr.Base)): def expression_list(self): # Copy and modify the array. - return [InstanceElement(self.instance._evaluator, self.instance, command, self.is_class_var) + return [InstanceElement(self._evaluator, self.instance, command, self.is_class_var) if not isinstance(command, (pr.Operator, Token)) else command for command in self.var.expression_list()] def __iter__(self): for el in self.var.__iter__(): - yield InstanceElement(self.instance._evaluator, self.instance, el, self.is_class_var) + yield InstanceElement(self.instance._evaluator, self.instance, el, + self.is_class_var) + + def __getitem__(self, index): + return InstanceElement(self._evaluator, self.instance, self.var[index], + self.is_class_var) def __getattr__(self, name): return getattr(self.var, name)