Skip to content

[Bug]: Incorrect overload handling for Any #139

@maxfischer2781

Description

@maxfischer2781

What happened?

Since typing.Any matches literally anything, for @overload that start with special cases these are always picked in untyped code. Instead, @overload should prefer the most generic, conservative case.

This is related to and got my attention by the pandas concat type hints bug that causes Any -> ??? paths to select None -> Never overloads.

Minimal Reproducible Example

# Type test
# MyPy "correctly" reports the unused type ignore

async def test_filter_any(aitr: "AsyncIterator[int | None]") -> None:
    filter_any: Any = ...  # < we don't know the actual type and don't care
    async for item in a.filter(filter_any, aitr):
        print(2 + item)  # type: ignore

Request Assignment [Optional]

  • I already understand the cause and want to submit a bugfix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions