Commit 15d886a
[red-knot] Consider all definitions after terminal statements unreachable (#15676)
`FlowSnapshot` now tracks a `reachable` bool, which indicates whether we
have encountered a terminal statement on that control flow path. When
merging flow states together, we skip any that have been marked
unreachable. This ensures that bindings that can only be reached through
unreachable paths are not considered visible.
## Test Plan
The new mdtests failed (with incorrect `reveal_type` results, and
spurious `possibly-unresolved-reference` errors) before adding the new
visibility constraints.
---------
Co-authored-by: Carl Meyer <carl@astral.sh>1 parent e1c9d10 commit 15d886a
4 files changed
Lines changed: 686 additions & 22 deletions
File tree
- crates
- red_knot_python_semantic
- resources/mdtest
- src/semantic_index
- ruff_benchmark/benches
0 commit comments