From 380f0ac4046da64e14d8b58b6c7978ec84c6d3df Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Fri, 5 Oct 2018 10:51:52 +0200 Subject: [PATCH] Fix itemgetter for tuples --- jedi/plugins/stdlib.py | 13 ++++++++++--- test/completion/stdlib.py | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/jedi/plugins/stdlib.py b/jedi/plugins/stdlib.py index 8cb5cf53..e65fede0 100644 --- a/jedi/plugins/stdlib.py +++ b/jedi/plugins/stdlib.py @@ -26,7 +26,8 @@ from jedi.evaluate.context import ClassContext, ModuleContext, \ FunctionExecutionContext from jedi.evaluate.context.klass import py__mro__ from jedi.evaluate.context import iterable -from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext +from jedi.evaluate.lazy_context import LazyTreeContext, LazyKnownContext, \ + LazyKnownContexts from jedi.evaluate.syntax_tree import is_string # Now this is all part of fake tuples in Jedi. However super doesn't work on @@ -475,8 +476,14 @@ class ItemGetterCallable(object): # TODO we need to add the contextualized context. context_set |= item_context_set.get_item(lazy_contexts[0].infer(), None) else: - return NO_CONTEXTS - raise NotImplementedError + context_set |= ContextSet([iterable.FakeSequence( + self.evaluator, + 'list', + [ + LazyKnownContexts(item_context_set.get_item(lazy_context.infer(), None)) + for lazy_context in lazy_contexts + ], + )]) return context_set diff --git a/test/completion/stdlib.py b/test/completion/stdlib.py index 04587110..4f88b0cb 100644 --- a/test/completion/stdlib.py +++ b/test/completion/stdlib.py @@ -259,7 +259,7 @@ g = operator.itemgetter(1, 2) x1, x2 = g([1, 1.0, '']) #? float() x1 -#? float() +#? str() x2 x1, x2 = g([1, ''])