about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/errors.rs
diff options
context:
space:
mode:
authorTrevor Gross <t.gross35@gmail.com>2025-06-18 20:22:48 -0400
committerGitHub <noreply@github.com>2025-06-18 20:22:48 -0400
commitcff8e9ae142c3dcaf4c66ec5b6be932f1442c4b5 (patch)
treef3a817601e97ce7acaaedf8d983c7811fc03b8ca /compiler/rustc_codegen_llvm/src/errors.rs
parent044514eb26511d2d8aa999fdf27e85df6beb6576 (diff)
parent377d8fa4e3057838f20dd1eb1669d4ebaf8a561a (diff)
downloadrust-cff8e9ae142c3dcaf4c66ec5b6be932f1442c4b5.tar.gz
rust-cff8e9ae142c3dcaf4c66ec5b6be932f1442c4b5.zip
Rollup merge of #140247 - BoxyUwU:iats_no_query_cycles, r=lcnr
Don't build `ParamEnv` and do trait solving in `ItemCtxt`s when lowering IATs

Fixes rust-lang/rust#108491

Fixes rust-lang/rust#125879
This was due to updating inhabited predicate stuff which I had to do to make constructing ADTs with IATs in fields not ICE

Fixes rust-lang/rust#136678 (but no test added, I don't rly care about weird IAT edge cases under GCE)
Fixes rust-lang/rust#138131

Avoids doing "fully correct" candidate selection for IATs during hir ty lowering when in item signatures as it almost always leads to a query cycle from trying to build a `ParamEnv`. I replaced it with a use `DeepRejectCtxt` which should be able to handle this kind of conservative "could these types unify" while in a context where we don't want to do type equality.

This is a relatively simple scheme and should be forwards compatible with doing something more complex/powerful.

I'm not really sure how this interacts with rust-lang/rust#126651, though I'm also not really sure its super important to support projecting IATs from IAT self types given we don't even support `T::Assoc::Other` for trait-associated types so didn't give much thought to how this might fit in with that.

r? `@compiler-errors`
cc `@fmease`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/errors.rs')
0 files changed, 0 insertions, 0 deletions