@@ -753,14 +753,11 @@ class C(Generic[*Ts]): pass
753
753
('generic[*Ts]' , '[*tuple_type[int]]' , 'generic[int]' ),
754
754
('generic[*Ts]' , '[*tuple_type[*Ts]]' , 'generic[*Ts]' ),
755
755
('generic[*Ts]' , '[*tuple_type[int, str]]' , 'generic[int, str]' ),
756
+ ('generic[*Ts]' , '[str, *tuple_type[int, ...], bool]' , 'generic[str, *tuple_type[int, ...], bool]' ),
756
757
('generic[*Ts]' , '[tuple_type[int, ...]]' , 'generic[tuple_type[int, ...]]' ),
757
758
('generic[*Ts]' , '[tuple_type[int, ...], tuple_type[str, ...]]' , 'generic[tuple_type[int, ...], tuple_type[str, ...]]' ),
758
759
('generic[*Ts]' , '[*tuple_type[int, ...]]' , 'generic[*tuple_type[int, ...]]' ),
759
-
760
- # Technically, multiple unpackings are forbidden by PEP 646, but we
761
- # choose to be less restrictive at runtime, to allow folks room
762
- # to experiment. So all three of these should be valid.
763
- ('generic[*Ts]' , '[*tuple_type[int, ...], *tuple_type[str, ...]]' , 'generic[*tuple_type[int, ...], *tuple_type[str, ...]]' ),
760
+ ('generic[*Ts]' , '[*tuple_type[int, ...], *tuple_type[str, ...]]' , 'TypeError' ),
764
761
765
762
('generic[*Ts]' , '[*Ts]' , 'generic[*Ts]' ),
766
763
('generic[*Ts]' , '[T, *Ts]' , 'generic[T, *Ts]' ),
@@ -772,15 +769,21 @@ class C(Generic[*Ts]): pass
772
769
('generic[list[T], *Ts]' , '[int, str]' , 'generic[list[int], str]' ),
773
770
('generic[list[T], *Ts]' , '[int, str, bool]' , 'generic[list[int], str, bool]' ),
774
771
775
- ('generic[T, *Ts]' , '[*tuple[int, ...]]' , 'TypeError' ), # Should be generic[int, *tuple[int, ...]]
776
-
777
772
('generic[*Ts, T]' , '[int]' , 'generic[int]' ),
778
773
('generic[*Ts, T]' , '[int, str]' , 'generic[int, str]' ),
779
774
('generic[*Ts, T]' , '[int, str, bool]' , 'generic[int, str, bool]' ),
780
775
('generic[*Ts, list[T]]' , '[int]' , 'generic[list[int]]' ),
781
776
('generic[*Ts, list[T]]' , '[int, str]' , 'generic[int, list[str]]' ),
782
777
('generic[*Ts, list[T]]' , '[int, str, bool]' , 'generic[int, str, list[bool]]' ),
783
778
779
+ ('generic[T, *Ts]' , '[*tuple_type[int, ...]]' , 'generic[int, *tuple_type[int, ...]]' ),
780
+ ('generic[*Ts, T]' , '[*tuple_type[int, ...]]' , 'generic[*tuple_type[int, ...], int]' ),
781
+ ('generic[T1, *Ts, T2]' , '[*tuple_type[int, ...]]' , 'generic[int, *tuple_type[int, ...], int]' ),
782
+ ('generic[T, str, *Ts]' , '[*tuple_type[int, ...]]' , 'generic[int, str, *tuple_type[int, ...]]' ),
783
+ ('generic[*Ts, str, T]' , '[*tuple_type[int, ...]]' , 'generic[*tuple_type[int, ...], str, int]' ),
784
+ ('generic[list[T], *Ts]' , '[*tuple_type[int, ...]]' , 'generic[list[int], *tuple_type[int, ...]]' ),
785
+ ('generic[*Ts, list[T]]' , '[*tuple_type[int, ...]]' , 'generic[*tuple_type[int, ...], list[int]]' ),
786
+
784
787
('generic[T, *tuple_type[int, ...]]' , '[str]' , 'generic[str, *tuple_type[int, ...]]' ),
785
788
('generic[T1, T2, *tuple_type[int, ...]]' , '[str, bool]' , 'generic[str, bool, *tuple_type[int, ...]]' ),
786
789
('generic[T1, *tuple_type[int, ...], T2]' , '[str, bool]' , 'generic[str, *tuple_type[int, ...], bool]' ),
0 commit comments