[case testAnnotated0]
from typing_extensions import Annotated
x: Annotated[int, ...]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotated1]
from typing import Union
from typing_extensions import Annotated
x: Annotated[Union[int, str], ...]
reveal_type(x)  # N: Revealed type is 'Union[builtins.int, builtins.str]'
[builtins fixtures/tuple.pyi]

[case testAnnotated2]
from typing_extensions import Annotated
x: Annotated[int, THESE, ARE, IGNORED, FOR, NOW]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotated3]
from typing_extensions import Annotated
x: Annotated[int, -+~12.3, "som"[e], more(anno+a+ions, that=[are]), (b"ignored",), 4, N.O.W, ...]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotatedBadType]
from typing_extensions import Annotated
x: Annotated[XXX, ...]  # E: Name 'XXX' is not defined
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedBadNoArgs]
from typing_extensions import Annotated
x: Annotated  # E: Annotated[...] must have exactly one type argument and at least one annotation
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedBadOneArg]
from typing_extensions import Annotated
x: Annotated[int]  # E: Annotated[...] must have exactly one type argument and at least one annotation
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNested0]
from typing_extensions import Annotated
x: Annotated[Annotated[int, ...], ...]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNested1]
from typing import Union
from typing_extensions import Annotated
x: Annotated[Annotated[Union[int, str], ...], ...]
reveal_type(x)  # N: Revealed type is 'Union[builtins.int, builtins.str]'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNestedBadType]
from typing_extensions import Annotated
x: Annotated[Annotated[XXX, ...], ...]  # E: Name 'XXX' is not defined
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNestedBadNoArgs]
from typing_extensions import Annotated
x: Annotated[Annotated, ...]  # E: Annotated[...] must have exactly one type argument and at least one annotation
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNestedBadOneArg]
from typing_extensions import Annotated
x: Annotated[Annotated[int], ...]  # E: Annotated[...] must have exactly one type argument and at least one annotation
reveal_type(x)  # N: Revealed type is 'Any'
[builtins fixtures/tuple.pyi]

[case testAnnotatedNoImport]
x: Annotated[int, ...]  # E: Name 'Annotated' is not defined
reveal_type(x)  # N: Revealed type is 'Any'

[case testAnnotatedDifferentName]
from typing_extensions import Annotated as An
x: An[int, ...]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotatedAliasSimple]
from typing import Tuple
from typing_extensions import Annotated
Alias = Annotated[Tuple[int, ...], ...]
x: Alias
reveal_type(x)  # N: Revealed type is 'builtins.tuple[builtins.int]'
[builtins fixtures/tuple.pyi]

[case testAnnotatedAliasTypeVar]
from typing import TypeVar
from typing_extensions import Annotated
T = TypeVar('T')
Alias = Annotated[T, ...]
x: Alias[int]
reveal_type(x)  # N: Revealed type is 'builtins.int'
[builtins fixtures/tuple.pyi]

[case testAnnotatedAliasGenericTuple]
from typing import TypeVar, Tuple
from typing_extensions import Annotated
T = TypeVar('T')
Alias = Annotated[Tuple[T, T], ...]
x: Alias[int]
reveal_type(x)  # N: Revealed type is 'Tuple[builtins.int, builtins.int]'
[builtins fixtures/tuple.pyi]

[case testAnnotatedAliasGenericUnion]
from typing import TypeVar, Union
from typing_extensions import Annotated
T = TypeVar('T')
Alias = Annotated[Union[T, str], ...]
x: Alias[int]
reveal_type(x)  # N: Revealed type is 'Union[builtins.int, builtins.str]'
[builtins fixtures/tuple.pyi]

[case testAnnotatedSecondParamNonType]
from typing_extensions import Annotated

class Meta:
    ...

x = Annotated[int, Meta()]
reveal_type(x)  # N: Revealed type is 'def () -> builtins.int'
[builtins fixtures/tuple.pyi]
