Skip to content

Commit 0ae4c63

Browse files
committed
revert mistakes of wrong merge
1 parent 0b3ce7d commit 0ae4c63

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/test_typing_extensions.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7484,6 +7484,22 @@ def test_invalid_cases_before_3_11(self):
74847484
with self.assertRaises(TypeError):
74857485
ListOrSetT[(Generic[T], )]
74867486

7487+
def test_unpack_parameter_collection(self):
7488+
Ts = TypeVarTuple("Ts")
7489+
7490+
class Foo(Generic[Unpack[Ts]]):
7491+
bar: Tuple[Unpack[Ts]]
7492+
7493+
FooAlias = TypeAliasType("FooAlias", Foo[Unpack[Ts]], type_params=(Ts,))
7494+
self.assertEqual(FooAlias[Unpack[Tuple[str]]].__parameters__, ())
7495+
self.assertEqual(FooAlias[Unpack[Tuple[T]]].__parameters__, (T,))
7496+
7497+
P = ParamSpec("P")
7498+
CallableP = TypeAliasType("CallableP", Callable[P, Any], type_params=(P,))
7499+
call_int_T = CallableP[Unpack[Tuple[int, T]]]
7500+
self.assertEqual(call_int_T.__parameters__, (T,))
7501+
7502+
74877503
def test_alias_attributes(self):
74887504
T = TypeVar('T')
74897505
T2 = TypeVar('T2')

src/typing_extensions.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3068,7 +3068,10 @@ def _collect_type_vars(types, typevar_types=None):
30683068
for t in types:
30693069
if _is_unpacked_typevartuple(t):
30703070
type_var_tuple_encountered = True
3071-
elif isinstance(t, typevar_types) and t not in tvars:
3071+
elif (
3072+
isinstance(t, typevar_types) and not isinstance(t, _UnpackAlias)
3073+
and t not in tvars
3074+
):
30723075
if enforce_default_ordering:
30733076
has_default = getattr(t, '__default__', NoDefault) is not NoDefault
30743077
if has_default:

0 commit comments

Comments
 (0)