diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 34635ec8..bf8fbe3f 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -273,7 +273,9 @@ class Evaluator(object): types = self._eval_atom(element.children[0]) for trailer in element.children[1:]: if trailer == '**': # has a power operation. - raise NotImplementedError + right = self.eval_element(element.children[2]) + types = set(precedence.calculate(self, types, trailer, right)) + break types = self.eval_trailer(types, trailer) elif element.type in ('testlist_star_expr', 'testlist',): # The implicit tuple in statements. diff --git a/test/completion/precedence.py b/test/completion/precedence.py index 68f15f43..60781158 100644 --- a/test/completion/precedence.py +++ b/test/completion/precedence.py @@ -48,6 +48,14 @@ a = 3 * "a" #? str() a +a = 3 * "a" +#? str() +a + +#? int() +(3 ** 3) +#? int() str() +(3 ** 'a') # ----------------- # assignments