Files
ruff/crates/red_knot_python_semantic/resources/mdtest/assignment/annotations.md

646 B

Assignment with annotations

Annotation only transparent to local inference

x = 1
x: int
y = x

reveal_type(y)  # revealed: Literal[1]

Violates own annotation

x: int = "foo"  # error: [invalid-assignment] "Object of type `Literal["foo"]` is not assignable to `int`"

Violates previous annotation

x: int
x = "foo"  # error: [invalid-assignment] "Object of type `Literal["foo"]` is not assignable to `int`"

PEP-604 annotations not yet supported

def f() -> str | None:
    return None

# TODO: should be `str | None` (but Todo is better than `Unknown`)
reveal_type(f())  # revealed: @Todo