about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2023-03-24 01:22:06 +0100
committerGitHub <noreply@github.com>2023-03-24 01:22:06 +0100
commit1c7ef3b48398dc4fc88d328d43839f5ee1ec1e9a (patch)
treec76a0ec290ac0c094dae19478e50f356eff9abaa /compiler/rustc_codegen_llvm/src
parentcca2630bc9879c844e6891d68c38ee5627e4d9c7 (diff)
parent1680334928c7bf36d0bf4c3329aa34bbfd343c72 (diff)
downloadrust-1c7ef3b48398dc4fc88d328d43839f5ee1ec1e9a.tar.gz
rust-1c7ef3b48398dc4fc88d328d43839f5ee1ec1e9a.zip
Rollup merge of #109493 - compiler-errors:new-solver-vars-obligations, r=lcnr
Return nested obligations from canonical response var unification

Handle alias-eq obligations being emitted from `instantiate_and_apply_query_response` in:
* `EvalCtxt` - by processing the nested obligations in the next loop by `new_goals`
* `FulfillCtxt` - by adding the nested obligations to the fulfillment's pending obligations
* `InferCtxt::evaluate_obligation` - ~~by returning `EvaluationResult::EvaluatedToAmbig` (boo :-1:, see the FIXME)~~ same behavior as above, since we use fulfillment and `select_where_possible`

The only one that's truly sketchy is `evaluate_obligation`, but it's not hard to modify this behavior moving forward.

From #109037, I think a smaller repro could be crafted if I were smarter, but I am not, so I just took this from #105878.

r? `@lcnr` cc `@BoxyUwU`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions