From 0cc7ea9bc961fe87fe31e08d5c5df1ba28a719e3 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 28 May 2019 10:20:06 +0200 Subject: [PATCH] Fix crazier subscript operations --- jedi/evaluate/context/iterable.py | 8 ++++++-- test/completion/arrays.py | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/jedi/evaluate/context/iterable.py b/jedi/evaluate/context/iterable.py index 62306a26..62da28b6 100644 --- a/jedi/evaluate/context/iterable.py +++ b/jedi/evaluate/context/iterable.py @@ -356,8 +356,12 @@ class SequenceLiteralContext(Sequence): yield LazyKnownContexts(types) else: for node in self.get_tree_entries(): - yield LazyTreeContext(self._defining_context, node) - + if node == ':' or node.type == 'subscript': + # TODO this should probably use at least part of the code + # of eval_subscript_list. + yield LazyKnownContext(Slice(self._defining_context, None, None, None)) + else: + yield LazyTreeContext(self._defining_context, node) for addition in check_array_additions(self._defining_context, self): yield addition diff --git a/test/completion/arrays.py b/test/completion/arrays.py index e3dc932e..0a5d433d 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -47,6 +47,14 @@ b[:] #? int() b[:, 1] +#? int() +b[:1, 1] +#? int() +b[1:1, 1] +#? int() +b[1:1:, ...] +#? int() +b[1:1:5, ...] class _StrangeSlice(): def __getitem__(self, sliced):