about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-07-12 14:38:00 +0200
committerGitHub <noreply@github.com>2024-07-12 14:38:00 +0200
commit526da2366aa2532084cff65658e5e28bd7606339 (patch)
treee80741fc52829ed01d67b54918e0649e0163d56a /compiler/rustc_pattern_analysis/src
parentf5fa6fb602c6add620604da08c6beec654952485 (diff)
parent15f770b1436c2be227c9338040e53d64f211fe63 (diff)
downloadrust-526da2366aa2532084cff65658e5e28bd7606339.tar.gz
rust-526da2366aa2532084cff65658e5e28bd7606339.zip
Rollup merge of #127627 - lcnr:rustc_search_graph, r=compiler-errors
generalize search graph to enable fuzzing

I do not believe it to be feasible to correctly implement the search graph without fuzzing. This PR enables this by requiring a fuzzer to only implement three new traits:
- `Cx`: implemented by all `I: Interner`
- `ProofTreeBuilder`: implemented by `struct ProofTreeBuilder<D>` for all `D: SolverDelegate`
- `Delegate`: implemented for a new `struct SearchGraphDelegate<D>` for all `D: SolverDelegate`

It also moves the evaluation cache implementation into `rustc_type_ir`, requiring `Interner` to provide methods to create and access arbitrary `WithDepNode<T>` and to provide mutable access to a given `GlobalCache`. It otherwise does not change the API surface for users of the shared library.

This change should not impact behavior in any way.

r? ``@compiler-errors``
Diffstat (limited to 'compiler/rustc_pattern_analysis/src')
0 files changed, 0 insertions, 0 deletions