Fix subtyping between ParamSpecs by ilevkivskyi · Pull Request #15892 · python/mypy (original) (raw)

Quick comment since I haven't looked over the code yet:

strict_concatenate check should be off by default (IIUC it is not mandated by the PEP)

My impression (I forgot everything...) is that it's mandated. But now I looked back at the PEP and found this example, which is not allowed by strict concatenate:

def add(f: Callable[P, int]) -> Callable[Concatenate[str, P], None]:

def foo(s: str, *args: P.args, **kwargs: P.kwargs) -> None: # Accepted pass

[snip]

return foo # Accepted