Skip to content

Invalid return type with sentinel and dict.get #21866

Description

@cdce8p
from typing import assert_type
from typing_extensions import sentinel

Unknown = sentinel("Unknown")

def func(d: dict[str, str]) -> None:
    var = d.get("key", Unknown)
    assert_type(var, str | Unknown)  # <- Error
test.py:8: error: Expression is of type "str | sentinel", not "str | Unknown"  [assert-type]

/CC @JelleZijlstra @edgarrmondragon

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugmypy got something wrong

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions