mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-18 18:45:07 +00:00
![]() ## Summary Simplifies literal `True` and `False` conditions to `ALWAYS_TRUE` / `ALWAYS_FALSE` during semantic index building. This allows us to eagerly evaluate more constraints, which should help with performance (looks like there is a tiny 1% improvement in instrumented benchmarks), but also allows us to eliminate definitely-unreachable branches in control-flow merging. This can lead to better type inference in some cases because it allows us to retain narrowing constraints without solving https://github.com/astral-sh/ty/issues/690 first: ```py def _(c: int | None): if c is None: assert False reveal_type(c) # int, previously: int | None ``` closes https://github.com/astral-sh/ty/issues/713 ## Test Plan * Regression test for https://github.com/astral-sh/ty/issues/713 * Made sure that all ecosystem diffs trace back to removed false positives |
||
---|---|---|
.. | ||
conditionals | ||
assert.md | ||
assignment.md | ||
bool-call.md | ||
boolean.md | ||
complex_target.md | ||
hasattr.md | ||
isinstance.md | ||
issubclass.md | ||
match.md | ||
post_if_statement.md | ||
truthiness.md | ||
type.md | ||
type_guards.md | ||
while.md |