[ty] support type aliases in binary compares (#20445)

## Summary

Add missing `Type::TypeAlias` clauses to `infer_binary_type_comparison`.

## Test Plan

Added mdtests that failed before.
This commit is contained in:
Carl Meyer 2025-09-17 00:33:26 -07:00 committed by GitHub
parent 681ad2fd92
commit c2fa449954
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 0 deletions

View file

@ -137,6 +137,18 @@ from ty_extensions import is_equivalent_to, static_assert
static_assert(is_equivalent_to(Y, A | B | C | D))
```
## In binary ops
```py
from typing import Literal
type X = tuple[Literal[1], Literal[2]]
def _(x: X, y: tuple[Literal[1], Literal[3]]):
reveal_type(x == y) # revealed: Literal[False]
reveal_type(x < y) # revealed: Literal[True]
```
## `TypeAliasType` properties
Two `TypeAliasType`s are distinct and disjoint, even if they refer to the same type