Auto merge of #125257 - jieyouxu:rollup-11evnm9, r=jieyouxu
Rollup of 3 pull requests Successful merges: - #125214 (Only make GAT ambiguous in `match_projection_projections` considering shallow resolvability) - #125236 (Add tests for `-Zunpretty=expanded` ported from stringify's tests) - #125251 (Clarify how String::leak and into_boxed_str differ ) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
b1ec1bd65f
13 changed files with 1844 additions and 57 deletions
|
@ -1778,9 +1778,19 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
|
|||
// If this type is a GAT, and of the GAT args resolve to something new,
|
||||
// that means that we must have newly inferred something about the GAT.
|
||||
// We should give up in that case.
|
||||
// FIXME(generic-associated-types): This only detects one layer of inference,
|
||||
// which is probably not what we actually want, but fixing it causes some ambiguity:
|
||||
// <https://github.com/rust-lang/rust/issues/125196>.
|
||||
if !generics.own_params.is_empty()
|
||||
&& obligation.predicate.args[generics.parent_count..].iter().any(|&p| {
|
||||
p.has_non_region_infer() && self.infcx.resolve_vars_if_possible(p) != p
|
||||
p.has_non_region_infer()
|
||||
&& match p.unpack() {
|
||||
ty::GenericArgKind::Const(ct) => {
|
||||
self.infcx.shallow_resolve_const(ct) != ct
|
||||
}
|
||||
ty::GenericArgKind::Type(ty) => self.infcx.shallow_resolve(ty) != ty,
|
||||
ty::GenericArgKind::Lifetime(_) => false,
|
||||
}
|
||||
})
|
||||
{
|
||||
ProjectionMatchesProjection::Ambiguous
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue