ruff/crates/ty_python_semantic/resources/mdtest/binary/tuples.md
2025-05-03 19:49:15 +02:00

794 B

Binary operations on tuples

Concatenation for heterogeneous tuples

reveal_type((1, 2) + (3, 4))  # revealed: tuple[Literal[1], Literal[2], Literal[3], Literal[4]]
reveal_type(() + (1, 2))  # revealed: tuple[Literal[1], Literal[2]]
reveal_type((1, 2) + ())  # revealed: tuple[Literal[1], Literal[2]]
reveal_type(() + ())  # revealed: tuple[()]

def _(x: tuple[int, str], y: tuple[None, tuple[int]]):
    reveal_type(x + y)  # revealed: tuple[int, str, None, tuple[int]]
    reveal_type(y + x)  # revealed: tuple[None, tuple[int], int, str]

Concatenation for homogeneous tuples

def _(x: tuple[int, ...], y: tuple[str, ...]):
    reveal_type(x + y)  # revealed: @Todo(full tuple[...] support)
    reveal_type(x + (1, 2))  # revealed: @Todo(full tuple[...] support)