From a6dd7bf82264741b5a04eab0182df1a6cb2c8058 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 26 Jul 2016 09:24:51 +0200 Subject: [PATCH] Fix an issue with inherited lists. --- jedi/evaluate/iterable.py | 4 +++- test/completion/arrays.py | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 3bbd7141..79adfcd2 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -676,7 +676,7 @@ def _check_array_additions(evaluator, compare_array, module, is_list): # Arguments([AlreadyEvaluated([_ArrayInstance])]) inside # Yeah... I know... It's complicated ;-) node = list(element.var_args.argument_node[0])[0].var_args.trailer - if isinstance(node, er.InstanceElement): + if isinstance(node, er.InstanceElement) or node is None: return node return node.get_parent_until(er.FunctionExecution) @@ -777,6 +777,8 @@ class _ArrayInstance(IterableWrapper): yield types module = self.var_args.get_parent_until() + if module is None: + return is_list = str(self.instance.name) == 'list' additions = _check_array_additions(self._evaluator, self.instance, module, is_list) if additions: diff --git a/test/completion/arrays.py b/test/completion/arrays.py index 938b9fdf..8875d184 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -311,6 +311,17 @@ for i in 0, 2: #? int() str() GetItemWithList()[i] + +# With super +class SuperYeah(list): + def __getitem__(self, index): + return super()[index] + +#? +SuperYeah([1])[0] +#? +SuperYeah()[0] + # ----------------- # conversions # -----------------