diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2025-02-12 20:30:52 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-12 20:30:52 +0100 |
| commit | 993eb34d848477b58c6bfc601df659597cf41a8c (patch) | |
| tree | b64b646ff74062d2b25a25e7d741096a2f8720da /compiler | |
| parent | 10b5596deb747385aa38043a93d87e02cdd000c8 (diff) | |
| parent | 95357c772c60b713f7af10d813ce4df94953431c (diff) | |
Rollup merge of #136838 - compiler-errors:escaping-unsize, r=fmease
Check whole `Unsize` predicate for escaping bound vars Fixes #136799
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs b/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs index e495bdbf782..bfab009a7e3 100644 --- a/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs +++ b/compiler/rustc_trait_selection/src/traits/select/candidate_assembly.rs @@ -920,11 +920,12 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> { // T: Trait // so it seems ok if we (conservatively) fail to accept that `Unsize` // obligation above. Should be possible to extend this in the future. - let Some(source) = obligation.self_ty().no_bound_vars() else { + let Some(trait_pred) = obligation.predicate.no_bound_vars() else { // Don't add any candidates if there are bound regions. return; }; - let target = obligation.predicate.skip_binder().trait_ref.args.type_at(1); + let source = trait_pred.self_ty(); + let target = trait_pred.trait_ref.args.type_at(1); debug!(?source, ?target, "assemble_candidates_for_unsizing"); |
