@@ -3712,3 +3712,27 @@ reveal_type(join(base, bad2)) # E: Value of type variable "C" of "join" cannot
37123712reveal_type(join(base, bad3)) # E: Value of type variable "C" of "join" cannot be "function" \
37133713 # N: Revealed type is "builtins.function"
37143714[builtins fixtures/tuple.pyi]
3715+
3716+ [case testCallableJoin5]
3717+ from typing import Callable, TypeVar
3718+
3719+ C = TypeVar("C", bound=Callable[..., None])
3720+
3721+ def join(t: C, val: C) -> C:
3722+ pass
3723+
3724+ def less1(code, lang, style=None): ...
3725+ def more1(code, lang, suffix="", style=None): ...
3726+ reveal_type(join(less1, more1)) # N: Revealed type is "def (code: Any, lang: Any, Any =) -> Any"
3727+ reveal_type(join(more1, less1)) # N: Revealed type is "def (code: Any, lang: Any, Any =) -> Any"
3728+
3729+ def less2(code, lang, style: int = 0): ...
3730+ def more2(code, lang, suffix: str = "", style: int = 0): ...
3731+ reveal_type(join(less2, more2)) # N: Revealed type is "def (code: Any, lang: Any, *, style: builtins.int =) -> Any"
3732+ reveal_type(join(more2, less2)) # N: Revealed type is "def (code: Any, lang: Any, *, style: builtins.int =) -> Any"
3733+
3734+ def less3(code, lang, style: int = 0): ...
3735+ def more3(code, lang, suffix: int = 0, style: str = ""): ...
3736+ reveal_type(join(less3, more3)) # N: Revealed type is "def (code: Any, lang: Any, builtins.int =) -> Any"
3737+ reveal_type(join(more3, less3)) # N: Revealed type is "def (code: Any, lang: Any, builtins.int =) -> Any"
3738+ [builtins fixtures/tuple.pyi]
0 commit comments