diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index a162de83..758751c6 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -378,7 +378,7 @@ class Evaluator(object): pass else: if comp_for == ':': - # Dict comprehensions have it at the 3rd index. + # Dict comprehensions have a colon at the 3rd index. try: comp_for = c[1].children[3] except IndexError: diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 9986c05e..3bbd7141 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -821,7 +821,11 @@ def create_index_types(evaluator, index): """ Handles slices in subscript nodes. """ - if tree.is_node(index, 'subscript'): # subscript is a slice operation. + if index == ':': + # Like array[:] + return set([Slice(evaluator, None, None, None)]) + elif tree.is_node(index, 'subscript'): # subscript is a slice operation. + # Like array[:3] result = [] for el in index.children: if el == ':': @@ -835,4 +839,6 @@ def create_index_types(evaluator, index): result += [None] * (3 - len(result)) return set([Slice(evaluator, *result)]) + + # No slices return evaluator.eval_element(index) diff --git a/test/completion/arrays.py b/test/completion/arrays.py index b6a565e2..938b9fdf 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -39,6 +39,9 @@ b[8:] #? list() b[int():] +#? list() +b[:] + class _StrangeSlice(): def __getitem__(self, sliced):