| [case testStarUnpackInComprehensionBasicsNative] | |
| # flags: --native-parser | |
| def test(x: list[list[int]], y: list[dict[str, int]]) -> None: | |
| reveal_type([*i for i in x]) # N: Revealed type is "builtins.list[builtins.int]" | |
| reveal_type({*i for i in x}) # N: Revealed type is "builtins.set[builtins.int]" | |
| reveal_type({**d for d in y}) # N: Revealed type is "builtins.dict[builtins.str, builtins.int]" | |
| [builtins fixtures/primitives.pyi] | |
| [case testStarUnpackInComprehensionBasicsOld] | |
| # flags: --no-native-parser | |
| def test(x: list[list[int]], y: list[dict[str, int]]) -> None: | |
| reveal_type([*i for i in x]) # N: Revealed type is "builtins.list[builtins.int]" | |
| reveal_type({*i for i in x}) # N: Revealed type is "builtins.set[builtins.int]" | |
| reveal_type({**d for d in y}) # N: Revealed type is "builtins.dict[builtins.str, builtins.int]" | |
| [builtins fixtures/primitives.pyi] | |
| [case testStarUnpackInComprehensionUnion] | |
| def test(x: list[list[int]] | list[list[str]], y: list[dict[str, int]] | list[dict[str, str]]) -> None: | |
| reveal_type([*i for i in x]) # N: Revealed type is "builtins.list[builtins.int | builtins.str]" | |
| reveal_type({*i for i in x}) # N: Revealed type is "builtins.set[builtins.int | builtins.str]" | |
| reveal_type({**d for d in y}) # N: Revealed type is "builtins.dict[builtins.str | builtins.str, builtins.int | builtins.str]" | |
| [builtins fixtures/primitives.pyi] | |
| [case testDoubleStarUnpackInComprehensionStructuralMapping] | |
| class MappingLike: | |
| def keys(self) -> list[str]: | |
| return ["key"] | |
| def __getitem__(self, key: str) -> int: | |
| return 1 | |
| def test(xs: list[MappingLike]) -> dict[str, int]: | |
| reveal_type({**x for x in xs}) # N: Revealed type is "builtins.dict[builtins.str, builtins.int]" | |
| return {**x for x in xs} | |
| [builtins fixtures/primitives.pyi] |