import functools
from collections.abc import Callable
from typing import Any, ParamSpec, TypeVar
P = ParamSpec("P")
T = TypeVar("T")
async def run_in_threadpool(func: Callable[P, T], *args: P.args, **kwargs: P.kwargs) -> T:
# FP: `partial[T]` is not assignable to variable `func` with type `(P) -> T`
func = functools.partial(func, *args, **kwargs) # E: bad-assignment
return func()
# Non-async variant (same issue)
def run_sync(func: Callable[P, T], *args: P.args, **kwargs: P.kwargs) -> T:
# FP: same as above
func = functools.partial(func, *args, **kwargs) # E: bad-assignment
return func()
Describe the Bug
Minimal repro:
Same code has 0 errors in all other type checkers
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeSIEAtsbgE4AuABGAK7oDGDuuUcAOujB1cVJh16wuEXOjiFU2Dk2q1GTAMKooURbEHDRTBqWIR0AcxU16zAILpSAGiYAFVHVRUAysRgcXABVTGAA1D0FBVyYAXjcPL19-AAp%2BEFc0gEpBQNimYL9wulSQQKzI9FQ4Uk4mTBgwJjp2AH1zFoYACzoYVExaXmS2TkRNbV1sWABtVyCAXRcAKg8LOFHXBTpVpcWAawB3FbW3QgOjzKYAWgA%2BfMRBJkemAGImADFXUYADYg8GCG0U0Ccy%2BKjgTHQuGYVTgEAslUmMGMuCYADcPADEUwvsMOKD9hAusYQtjkq4Ljd8l8Hk9cXlcdxePJfowAVAhuwAkxlls4DszryLi8mABRUbYPqXGFw9BUGDoBg0x49BisOjoFic5LZdAVV4AOVkUuqtXRdABCqYyTQcrBcFYMB19UazXQLRNHA5IzGOj0MBm8yWR3Wm223L2h15IYFqwpt0C9w1T1eH1GNqRVSYilwqJgSs1tTiDJ4fBIfzZXq5PLDiwj50erzFTAlmGNsPhcoV%2BZVao1uO1ICcIFY-1LZAorwAqqPCaQC9JZAJdVgGix6FRUAwWuhWFRsDBivhRuYGHGmHAGHRE08mjBVeqWGl9bv91emMB8ABfNKCQcgMg9GAUCkIQ3BUFAE5uKQgHAeeGA4AQ4iyJAFhqpuMjoIQgivN4MBIp0DAMMQawAPQkQBDTAYQ9AWCR8okZguAcHAJESEIcJof8sgkWudBZui0B%2Bkh7GoZ4XEargxDifIghkF0Rq5nQsKyHkaQAMyEAAjAATD%2B6AgJ%2BQ6oNIuZvNAMAUGgWB4EQ46fkAA
(Only applicable for extension issues) IDE Information
No response