ruff/crates/red_knot_python_semantic/resources/mdtest/comparison/integers.md
cake-monotone b6ffa51c16
[red-knot] Type inference for comparisons between arbitrary instances (#13903)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Carl Meyer <carl@oddbird.net>
2024-10-26 18:19:56 +00:00

938 B

Comparison: Integers

Integer literals

reveal_type(1 == 1 == True)  # revealed: Literal[True]
reveal_type(1 == 1 == 2 == 4)  # revealed: Literal[False]
reveal_type(False < True <= 2 < 3 != 6)  # revealed: Literal[True]
reveal_type(1 < 1)  # revealed: Literal[False]
reveal_type(1 > 1)  # revealed: Literal[False]
reveal_type(1 is 1)  # revealed: bool
reveal_type(1 is not 1)  # revealed: bool
reveal_type(1 is 2)  # revealed: Literal[False]
reveal_type(1 is not 7)  # revealed: Literal[True]
# TODO: should be Unknown, and emit diagnostic, once we check call argument types
reveal_type(1 <= "" and 0 < 1)  # revealed: bool

Integer instance

# TODO: implement lookup of `__eq__` on typeshed `int` stub.
def int_instance() -> int:
    return 42

reveal_type(1 == int_instance())  # revealed: bool
reveal_type(9 < int_instance())  # revealed: bool
reveal_type(int_instance() < int_instance())  # revealed: bool