diff --git a/jedi/evaluate/compiled/__init__.py b/jedi/evaluate/compiled/__init__.py index 8cd6a5e7..109c1b30 100644 --- a/jedi/evaluate/compiled/__init__.py +++ b/jedi/evaluate/compiled/__init__.py @@ -93,6 +93,16 @@ class CompiledObject(Base): else: raise KeyError("CompiledObject doesn't have an attribute '%s'." % name) + def get_index_types(self, mixed_obj): + # If the object doesn't have `__getitem__`, just raise the + # AttributeError. + self.obj.__getitem__ + + try: + self.obj[mixed_obj] + except (KeyError, IndexError): + raise AttributeError() + @property def name(self): # might not exist sometimes (raises AttributeError) diff --git a/test/test_api/test_interpreter.py b/test/test_api/test_interpreter.py index 10c344ed..d7b7a0fd 100644 --- a/test/test_api/test_interpreter.py +++ b/test/test_api/test_interpreter.py @@ -44,7 +44,10 @@ class TestInterpreterAPI(TestCase): completions) def test_list(self): - array = ['haha'] + array = ['haha', 1] self.check_interpreter_complete('array[0].uppe', locals(), ['upper']) + self.check_interpreter_complete('array[0].real', + locals(), + [])