Skip to content

cls (which is str) has revealed type of "Type[builtins.object]" #13704

@nickeldan

Description

@nickeldan

In this example

def func(cls: type) -> typing.Any:
    if cls is str:
        reveal_type(cls)
        return cls(5)

mypy states

note: Revealed type is "builtins.type"

Makes sense. However, if I change it to

def func(cls: type) -> typing.Any:
    if issubclass(cls, int):
        pass
    elif cls is str:
        reveal_type(cls)
        return cls(5)

mypy states

note: Revealed type is "Type[builtins.object]"
error: Too many arguments for "object"

This is on Python 3.8.10 and mypy 0.910.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugmypy got something wrongtopic-type-narrowingConditional type narrowing / binder

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions