Fix resolving of names that are not annotations (#1989), fixes #1988

* Fix #1988

* Fix failing code quality test.

* Fix  flake W504 line break after binary operator.  Now as formatted by Black.

* Added test to test/completion/pep0484_basic.py
Addressed feedback from Dave
This commit is contained in:
pyscripter
2024-04-25 12:11:24 +03:00
committed by GitHub
parent f11014fc5d
commit a4574a50d0
2 changed files with 12 additions and 0 deletions

View File

@@ -695,8 +695,15 @@ def tree_name_to_values(inference_state, context, tree_name):
if expr_stmt.type == "expr_stmt" and expr_stmt.children[1].type == "annassign":
correct_scope = parser_utils.get_parent_scope(name) == context.tree_node
ann_assign = expr_stmt.children[1]
if correct_scope:
found_annotation = True
if (
(ann_assign.children[1].type == 'name')
and (ann_assign.children[1].value == tree_name.value)
and context.parent_context
):
context = context.parent_context
value_set |= annotation.infer_annotation(
context, expr_stmt.children[1].children[1]
).execute_annotation()

View File

@@ -180,6 +180,11 @@ def argskwargs(*args: int, **kwargs: float):
#? float()
kwargs['']
class Test:
str: str = 'abc'
#? ['upper']
Test.str.upp
class NotCalledClass:
def __init__(self, x):