Skip to content

Inconsistent types for variable with partial type #4484

Open
@JukkaL

Description

@JukkaL

In the example below the variable seemingly has two types (None and x) which is wrong. This also results in an inconsistency with fine-grained incremental mode.

x = None

def f() -> None:
    reveal_type(x)  # None
    if x:
        1()  # No error, considered as not reachable
        y = 1
    else:
        y = ''  # No error

x = 1
reveal_type(x)  # int

The expected behavior is for x to always have the type int and for every line in the example to be considered reachable.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions