Skip to content

Cannot infer type of a generic Callable return #587

@lczyk

Description

@lczyk

Summary

from typing_extensions import reveal_type
from typing import Callable, TypeVar

_T = TypeVar("_T")

def f(fun: Callable[[], _T]) -> _T:
    v = fun()
    return v

def g() -> int:
    return 42

reveal_type(g)
reveal_type(f(g))
$ mypy mwe.py
mwe.py:13: note: Revealed type is "def () -> builtins.int"
mwe.py:14: note: Revealed type is "builtins.int"
$ ty check mwe.py
info[revealed-type] mwe.py:13:13: Revealed type: `def g() -> int`
info[revealed-type] mwe.py:14:13: Revealed type: `Unknown`

aka ty seems to not be able to infer the return type of f correctly

Version

ty 0.0.1-alpha.8 (c1337c9 2025-06-02)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggenericsBugs or features relating to ty's generics implementation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions