diff --git a/jedi/evaluate/pep0484.py b/jedi/evaluate/pep0484.py index 287a2fae..d282642b 100644 --- a/jedi/evaluate/pep0484.py +++ b/jedi/evaluate/pep0484.py @@ -81,18 +81,18 @@ def _fix_forward_reference(context, node): @memoize_default() def follow_param(context, param): - annotation = param.get_annotation() + annotation = param.annotation return _evaluate_for_annotation(context, annotation) def py__annotations__(funcdef): - return_annotation = funcdef.get_annotation() + return_annotation = funcdef.annotation if return_annotation: dct = {'return': return_annotation} else: dct = {} for function_param in funcdef.params: - param_annotation = function_param.get_annotation() + param_annotation = function_param.annotation if param_annotation is not None: dct[function_param.name.value] = param_annotation return dct diff --git a/jedi/parser/python/tree.py b/jedi/parser/python/tree.py index 5130c0c8..01a50adf 100644 --- a/jedi/parser/python/tree.py +++ b/jedi/parser/python/tree.py @@ -588,7 +588,8 @@ class Function(ClassOrFunc): def is_generator(self): return bool(self.yields) - def get_annotation(self): + @property + def annotation(self): try: if self.children[3] == "->": return self.children[4] @@ -656,7 +657,8 @@ class Lambda(Function): def is_generator(self): return False - def get_annotation(self): + @property + def annotation(self): # lambda functions do not support annotations return None @@ -1066,7 +1068,8 @@ class Param(PythonBaseNode): except IndexError: return None - def get_annotation(self): + @property + def annotation(self): tfpdef = self._tfpdef() if tfpdef.type == 'tfpdef': assert tfpdef.children[1] == ":" diff --git a/test/test_parser/test_parser_tree.py b/test/test_parser/test_parser_tree.py index 86d82d5c..ef38f38b 100644 --- a/test/test_parser/test_parser_tree.py +++ b/test/test_parser/test_parser_tree.py @@ -58,9 +58,9 @@ class TestsFunctionAndLambdaParsing(object): def test_annotation(self, node, expected): expected_annotation = expected.get('annotation', None) if expected_annotation is None: - assert node.get_annotation() is None + assert node.annotation is None else: - assert node.get_annotation().value == expected_annotation + assert node.annotation.value == expected_annotation def test_get_call_signature(self, node, expected): assert node.get_call_signature() == expected['call_sig']