about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/interface.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2025-01-23 19:54:25 +0100
committerGitHub <noreply@github.com>2025-01-23 19:54:25 +0100
commitdafc861aa31831887fb0e634b07711e4f6ed6e66 (patch)
treecf57932190995f8556962062d838849ca437fa49 /compiler/rustc_interface/src/interface.rs
parent4496f23ca9f7dcc9e85209a3a99f6e911b1009f5 (diff)
parent09b784fac560d725ffc37b6fad1037615f63b232 (diff)
downloadrust-dafc861aa31831887fb0e634b07711e4f6ed6e66.tar.gz
rust-dafc861aa31831887fb0e634b07711e4f6ed6e66.zip
Rollup merge of #135766 - lcnr:candidate-assembly-3, r=compiler-errors
handle global trait bounds defining assoc types

This also fixes the compare-mode for
- tests/ui/coherence/coherent-due-to-fulfill.rs
- tests/ui/codegen/mono-impossible-2.rs
- tests/ui/trivial-bounds/trivial-bounds-inconsistent-projection.rs
- tests/ui/nll/issue-61320-normalize.rs

I first considered the alternative to always prefer where-bounds during normalization, regardless of how the trait goal has been proven by changing `fn merge_candidates` instead. https://github.com/rust-lang/rust/blob/ecda83b30f0f68cf5692855dddc0bc38ee8863fc/compiler/rustc_next_trait_solver/src/solve/assembly/mod.rs#L785

This approach is more restrictive than behavior of the old solver to avoid mismatches between trait and normalization goals. This may be breaking in case the where-bound adds unnecessary region constraints and we currently don't ever try to normalize an associated type. I would like to detect these cases and change the approach to exactly match the old solver if required. I want to minimize cases where attempting to normalize in more places causes code to break.

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