from typing import NoReturn, Never
import typing_extensions

def foo(arg): ...
def foo_int(arg: int): ...
def foo_no_return(arg: NoReturn): ...  # Error: PYI050
def foo_no_return_typing_extensions(
    arg: typing_extensions.NoReturn,
): ...  # Error: PYI050
def foo_no_return_kwarg(arg: int, *, arg2: NoReturn): ...  # Error: PYI050
def foo_no_return_pos_only(arg: int, /, arg2: NoReturn): ...  # Error: PYI050
def foo_never(arg: Never): ...
def foo_args(*args: NoReturn): ...  # Error: PYI050
def foo_kwargs(**kwargs: NoReturn): ...  # Error: PYI050
def foo_args_kwargs(*args: NoReturn, **kwargs: NoReturn): ...  # Error: PYI050
def foo_int_args(*args: int): ...
def foo_int_kwargs(**kwargs: int): ...
def foo_int_args_kwargs(*args: int, **kwargs: int): ...
def foo_int_args_no_return(*args: int, **kwargs: NoReturn): ...  # Error: PYI050
def foo_int_kwargs_no_return(*args: NoReturn, **kwargs: int): ...  # Error: PYI050
def foo_args_never(*args: Never): ...
def foo_kwargs_never(**kwargs: Never): ...
def foo_args_kwargs_never(*args: Never, **kwargs: Never): ...
def stringized(arg: "NoReturn"): ...
def stringized_good(arg: "Never"): ...
