| [case testOrErrorSyntax] | |
| from typing import Union | |
| x : Union[bool, str] | |
| x = 3 # E: Incompatible types in assignment (expression has type "int", variable has type "bool | str") | |
| [case testOrNoneErrorSyntax] | |
| from typing import Union | |
| x : Union[bool, None] | |
| x = 3 # E: Incompatible types in assignment (expression has type "int", variable has type "bool | None") | |
| [case testNoneAsFinalItem] | |
| from typing import Union | |
| x : Union[bool, None, str] | |
| x = 3 # E: Incompatible types in assignment (expression has type "int", variable has type "bool | str | None") | |
| [case testLiteralOrErrorSyntax] | |
| from typing import Literal, Union | |
| x : Union[Literal[1], Literal[2], str] | |
| x = 3 # E: Incompatible types in assignment (expression has type "Literal[3]", variable has type "Literal[1, 2] | str") | |
| [builtins fixtures/tuple.pyi] | |
| [case testLiteralOrNoneErrorSyntax] | |
| from typing import Literal, Union | |
| x : Union[Literal[1], None] | |
| x = 3 # E: Incompatible types in assignment (expression has type "Literal[3]", variable has type "Literal[1] | None") | |
| [builtins fixtures/tuple.pyi] | |
| [case testOrSyntaxRecombined] | |
| # flags: --allow-redefinition --local-partial-types | |
| # The following revealed type is recombined because the finally body is visited twice. | |
| try: | |
| x = 1 | |
| x = "" | |
| x = {1: ""} | |
| finally: | |
| reveal_type(x) # N: Revealed type is "builtins.int | builtins.str | builtins.dict[builtins.int, builtins.str]" | |
| [builtins fixtures/isinstancelist.pyi] |