@@ -802,7 +802,7 @@ def error_in_variadic(exc: Tuple[int, ...]) -> None:
802802[builtins fixtures/tuple.pyi]
803803
804804[case testExceptWithMultipleTypes5]
805- from typing import Tuple, Type, Union
805+ from typing import Tuple, Type, Union, Never
806806
807807class E1(BaseException): pass
808808class E2(BaseException): pass
@@ -849,7 +849,36 @@ def error_in_tuple_union(exc: Tuple[Union[Type[E1], Type[E2]], Union[Type[E3], i
849849 pass
850850 except exc as e: # E: Exception type must be derived from BaseException (or be a tuple of exception classes)
851851 pass
852+ [builtins fixtures/tuple.pyi]
853+
854+ [case testExceptWithMultipleTypes6]
855+ from typing import Never
856+
857+ def random() -> bool: ...
858+
859+ def error_in_empty_tuple() -> None:
860+ try:
861+ pass
862+ except () as e: # E: Need type annotation for "e"
863+ pass
852864
865+ def error_in_empty_tuple_annotated(exc: tuple[()]) -> None:
866+ try:
867+ pass
868+ except (BaseException if random() else ()) as e:
869+ pass
870+
871+ def error_in_conditional_empty_tuple() -> None:
872+ try:
873+ pass
874+ except exc as e: # E: Name "exc" is not defined
875+ pass
876+
877+ def error_in_never(exc: Never) -> None:
878+ try:
879+ pass
880+ except exc as e: # E: Need type annotation for "e"
881+ pass
853882[builtins fixtures/tuple.pyi]
854883
855884[case testExceptWithAnyTypes]
0 commit comments