diff options
| author | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-12-13 11:59:15 +0000 |
|---|---|---|
| committer | Oli Scherer <git-spam-no-reply9815368754983@oli-obk.de> | 2022-12-14 15:36:39 +0000 |
| commit | 9f6ae8828e5509ccf4e01736dadcb80919a88988 (patch) | |
| tree | a56a0234adb5f20832056bef1453fe6c6061c5d7 | |
| parent | 0ae3da34c358150f53fd201461e52820ea75fc85 (diff) | |
| download | rust-9f6ae8828e5509ccf4e01736dadcb80919a88988.tar.gz rust-9f6ae8828e5509ccf4e01736dadcb80919a88988.zip | |
Fix a freshly detected wrong TraitRef
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/object_safety.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/object_safety.rs b/compiler/rustc_trait_selection/src/traits/object_safety.rs index 71919b2078e..8b1ced78f4e 100644 --- a/compiler/rustc_trait_selection/src/traits/object_safety.rs +++ b/compiler/rustc_trait_selection/src/traits/object_safety.rs @@ -694,16 +694,12 @@ fn receiver_is_dispatchable<'tcx>( // U: Trait<Arg1, ..., ArgN> let trait_predicate = { - let substs = - InternalSubsts::for_item(tcx, method.trait_container(tcx).unwrap(), |param, _| { - if param.index == 0 { - unsized_self_ty.into() - } else { - tcx.mk_param_from_def(param) - } - }); + let trait_def_id = method.trait_container(tcx).unwrap(); + let substs = InternalSubsts::for_item(tcx, trait_def_id, |param, _| { + if param.index == 0 { unsized_self_ty.into() } else { tcx.mk_param_from_def(param) } + }); - ty::Binder::dummy(tcx.mk_trait_ref(unsize_did, substs)).to_predicate(tcx) + ty::Binder::dummy(tcx.mk_trait_ref(trait_def_id, substs)).to_predicate(tcx) }; let caller_bounds: Vec<Predicate<'tcx>> = |
