diff --git a/jedi/inference/value/instance.py b/jedi/inference/value/instance.py index ac0574c7..c2c20359 100644 --- a/jedi/inference/value/instance.py +++ b/jedi/inference/value/instance.py @@ -501,6 +501,18 @@ class SelfName(TreeNameDefinition): def get_defining_qualified_value(self): return self._instance + def infer(self): + stmt = search_ancestor(self.tree_name, 'expr_stmt') + if stmt is not None: + if stmt.children[1].type == "annassign": + from jedi.inference.gradual.annotation import infer_annotation + values = infer_annotation( + self.parent_context, stmt.children[1].children[1] + ).execute_annotation() + if values: + return values + return super().infer() + class LazyInstanceClassName(NameWrapper): def __init__(self, instance, class_member_name): diff --git a/test/completion/pep0484_basic.py b/test/completion/pep0484_basic.py index 54ec8770..19c4cfa4 100644 --- a/test/completion/pep0484_basic.py +++ b/test/completion/pep0484_basic.py @@ -179,3 +179,13 @@ def argskwargs(*args: int, **kwargs: float): next(iter(kwargs.keys())) #? float() kwargs[''] + + +class NotCalledClass: + def __init__(self, x): + self.x: int = x + self.y: int = '' + #? int() + self.x + #? int() + self.y