Fix annotations on self attributes, fixes #1681

This commit is contained in:
Dave Halter
2020-10-23 23:26:07 +02:00
parent a4f45993f8
commit 6eabde1519
2 changed files with 22 additions and 0 deletions

View File

@@ -501,6 +501,18 @@ class SelfName(TreeNameDefinition):
def get_defining_qualified_value(self): def get_defining_qualified_value(self):
return self._instance 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): class LazyInstanceClassName(NameWrapper):
def __init__(self, instance, class_member_name): def __init__(self, instance, class_member_name):

View File

@@ -179,3 +179,13 @@ def argskwargs(*args: int, **kwargs: float):
next(iter(kwargs.keys())) next(iter(kwargs.keys()))
#? float() #? float()
kwargs[''] kwargs['']
class NotCalledClass:
def __init__(self, x):
self.x: int = x
self.y: int = ''
#? int()
self.x
#? int()
self.y