Commit 0a76e0b
authored
Unrolled build for #153493
Rollup merge of #153493 - zetanumbers:remove_from_cycle_error, r=nnethercote
Remove `FromCycleError` trait
Currently `QueryVTable`'s `value_from_cycle_error` function pointer uses the `FromCycleError` trait to call query cycle handling code and to construct an erroneous query output value. This trick however relies too heavily on trait impl specialization and makes those impls inconsistent (which is bad AFAIK). Instead this PR directly modifies `value_from_cycle_error` function pointer upon vtable initialization and gets rid of `FromCycleError`.
Removal of `FromCycleError` might also be a desired change for some developers involved in the query system development due to some other reasons.
This PR is split up into two commits. **Code formatting changes are isolated into the second commit for better git diffs in the first one.** Nice and simple refactor PR.
I got this idea from #153470 (comment) discussion and thought it would be a pretty quick change to implement.
r? @nnethercote
I think this PR would benefit from your reviewer polish.File tree
3 files changed
+197
-220
lines changed- compiler/rustc_query_impl/src
3 files changed
+197
-220
lines changed
0 commit comments