-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed
Labels
Description
Right now there's an uncovered branch in TypeVarTuple.__typing_prepare_subst__:
And it looks like there's a bug in it, these two lines:
for param in enumerate(params[typevartuple_index + 1:]):
if isinstance(param, TypeVarTuple):This if's body will never be executed, because enumerate always returns tuple[int, T], it is never TypeVarTuple.
So, I think that we need to remove enumerate() call here and add a test like:
>>> from typing import Generic, TypeVarTuple
>>> V = TypeVarTuple('V')
>>> T = TypeVarTuple('T')
>>> class My(Generic[*T]): pass
...
>>> My[*T, *V][*V]
TypeError: More than one TypeVarTuple parameter in __main__.My[*T, *V]I will send a PR 😉
