Skip to content

Commit a30715f

Browse files
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`````
2 parents dfd527c + 6eb4ca2 commit a30715f

File tree

0 file changed

+0
-0
lines changed

    0 file changed

    +0
    -0
    lines changed

    0 commit comments

    Comments
     (0)