Skip to content

Commit 02fd0ba

Browse files
committed
Raise TypeError on parameterless alias
+ formatting
1 parent 7029d51 commit 02fd0ba

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

src/typing_extensions.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3528,14 +3528,16 @@ def __repr__(self) -> str:
35283528

35293529
if sys.version_info >= (3, 11):
35303530
def __getitem__(self, parameters):
3531+
if len(self.__type_params__) == 0:
3532+
raise TypeError("Only generic type aliases are subscriptable")
35313533
if not isinstance(parameters, tuple):
35323534
parameters = (parameters,)
35333535
parameters = [
3534-
typing._type_check(
3535-
item, f'Subscripting {self.__name__} requires a type.'
3536-
)
3537-
for item in parameters
3538-
]
3536+
typing._type_check(
3537+
item, f'Subscripting {self.__name__} requires a type.'
3538+
)
3539+
for item in parameters
3540+
]
35393541
alias = typing._GenericAlias(self, tuple(parameters))
35403542
alias.__value__ = self.__value__
35413543
alias.__type_params__ = self.__type_params__
@@ -3560,12 +3562,14 @@ def _check_parameter(self, item, recursion=0):
35603562
)
35613563

35623564
def __getitem__(self, parameters):
3565+
if len(self.__type_params__) == 0:
3566+
raise TypeError("Only generic type aliases are subscriptable")
35633567
if not isinstance(parameters, tuple):
35643568
parameters = (parameters,)
35653569
parameters = [
3566-
checked
3567-
for item in parameters
3568-
for checked in self._check_parameter(item)
3570+
checked
3571+
for item in parameters
3572+
for checked in self._check_parameter(item)
35693573
]
35703574
if sys.version_info[:2] == (3, 10):
35713575
alias = typing._GenericAlias(self, tuple(parameters),

0 commit comments

Comments
 (0)