◐ Shell
clean mode source ↗

gh-91162: Implement splitting of *tuple[int, ...] over `T, *Ts` in typing.py by mrahtz · Pull Request #93318 · python/cpython

In #91162, we decided that it should be valid to do

T = TypeVar('T')
Ts = TypeVarTuple('Ts')

Alias = tuple[T, *Ts]

Alias[*tuple[int, ...]]

and that the result should be tuple[int, *tuple[int, ...]].

This PR does the first half of the work necessary to enable this: the changes necessary in typing.py. The second half will be the equivalent machinery in genericaliasobject.c, but I'll do that in a separate PR, since I guess different people will want to review it.