ruff/crates/red_knot_python_semantic/src
Carl Meyer abaa18993b
[red-knot] handle cycles in MRO/bases resolution (#16693)
There can be semi-cyclic inheritance patterns (e.g. recursive generics)
that are not technically inheritance cycles, but that can cause us to
hit Salsa query cycles in evaluating a type's MRO. Add fixed-point
handling to these MRO-related queries so we don't panic on these cycles.

The details of what queries we hit in what order in this case will
change as we implement support for generics, but ultimately we will
probably need cycle handling for all queries that can re-enter type
inference, otherwise we are susceptible to small changes in query
execution order causing panics.

Fixes #14333
Further reduces the panicking set of seeds in #14737
2025-03-13 08:16:03 -07:00
..
module_resolver [red-knot] Rework Type::to_instance() to return Option<Type> (#16428) 2025-03-11 16:42:44 +00:00
semantic_index [red-knot] detect invalid return type (#16540) 2025-03-12 01:58:59 +00:00
types [red-knot] handle cycles in MRO/bases resolution (#16693) 2025-03-13 08:16:03 -07:00
util [red-knot] Improve ergonomics for the PySlice trait (#13983) 2024-10-29 20:40:59 +00:00
ast_node_ref.rs [red-knot] Support unpacking with target (#16469) 2025-03-08 02:36:35 +00:00
db.rs Add OsSystem support to mdtests (#16518) 2025-03-06 10:41:40 +01:00
lib.rs [red-knot] Don't use separate ID types for each alist (#16415) 2025-02-28 14:55:55 -05:00
lint.rs Add knot.toml schema (#15735) 2025-02-07 10:59:40 +01:00
list.rs [red-knot] Don't use separate ID types for each alist (#16415) 2025-02-28 14:55:55 -05:00
module_name.rs Bind top-most parent when importing nested module (#14946) 2024-12-16 16:15:40 -05:00
node_key.rs [red-knot] Use memory address as AST node key (#14317) 2024-11-13 14:35:54 +01:00
program.rs Rename venv-path to python (#16347) 2025-02-24 19:41:06 +01:00
python_platform.rs Add knot.toml schema (#15735) 2025-02-07 10:59:40 +01:00
semantic_index.rs Add OsSystem support to mdtests (#16518) 2025-03-06 10:41:40 +01:00
semantic_model.rs [red-knot] Rename *_ty functions (#15617) 2025-01-22 09:06:56 +01:00
site_packages.rs Add OsSystem support to mdtests (#16518) 2025-03-06 10:41:40 +01:00
suppression.rs ruff_db: add "secondary" messages to Diagnostic trait 2025-02-19 08:24:19 -05:00
symbol.rs [red-knot] use fixpoint iteration for all cycles (#14029) 2025-03-12 12:41:40 +00:00
types.rs [red-knot] handle cycles in MRO/bases resolution (#16693) 2025-03-13 08:16:03 -07:00
unpack.rs [red-knot] Support unpacking with target (#16469) 2025-03-08 02:36:35 +00:00