forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit a30715f
authored
Rollup merge of rust-lang#148649 - lcnr:rarwwww, r=BoxyUwU
don't completely reset `HeadUsages`
This is really subtle ☠️ I've actually went and added testing for `search_graph.ignore_candidate_head_usages` to https://github.com/lcnr/search_graph_fuzz now. I should have done that when I originally implemented but didn't quite know how to do so back then.
The search graph is far too subtle to think through it manually. I've added the affected proof tree to https://github.com/rust-lang/trait-system-refactor-initiative/blob/main/notes/next-solver/search-graph/general.md#keeping-provisional-cache-entries-on-rerun. It's
- A
- B
- C (depends on B and gets dropped when rerunning)
- D (does not depend on B so we keep it around when rerunning)
- C (irrevant candidate)
- A
- B
- D
- C (irrevant candidate)
- D
- A
- rerun
- C (use provisional cache entry which doesn't depend on B)
- D (use provisional cache entry which doesn't depend on B)
Fixes the ICE in rust-lang/trait-system-refactor-initiative#246 (comment). I think this issue is brittle enough that adding that as a test isn't really useful. Any small change to the search graph will prevent it from testing this. We do test this fix via the fuzzer.
r? `````@BoxyUwU`````File tree
Expand file treeCollapse file tree
0 file changed
+0
-0
lines changedOpen diff view settings
Filter options
Expand file treeCollapse file tree
0 file changed
+0
-0
lines changedOpen diff view settings
0 commit comments