diff options
| author | Deadbeef <ent3rm4n@gmail.com> | 2022-03-21 16:52:41 +1100 |
|---|---|---|
| committer | Deadbeef <ent3rm4n@gmail.com> | 2022-03-21 17:04:03 +1100 |
| commit | 1f3ee7f32e1345e70f31adf1cb2d6f11d1d87c9a (patch) | |
| tree | 5979e8a7dbd451f5c73d192b3b9529d52964e890 /compiler/rustc_const_eval | |
| parent | 4df2a28aee55f73d4e898c931664b8087b06522d (diff) | |
| download | rust-1f3ee7f32e1345e70f31adf1cb2d6f11d1d87c9a.tar.gz rust-1f3ee7f32e1345e70f31adf1cb2d6f11d1d87c9a.zip | |
Rename `~const Drop` to `~const Destruct`
Diffstat (limited to 'compiler/rustc_const_eval')
| -rw-r--r-- | compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs b/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs index 4ea21b4d06d..1e02129855e 100644 --- a/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs +++ b/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs @@ -3,6 +3,7 @@ //! See the `Qualif` trait for more info. use rustc_errors::ErrorGuaranteed; +use rustc_hir::LangItem; use rustc_infer::infer::TyCtxtInferExt; use rustc_infer::traits::TraitEngine; use rustc_middle::mir::*; @@ -152,18 +153,14 @@ impl Qualif for NeedsNonConstDrop { return false; } - let Some(drop_trait) = cx.tcx.lang_items().drop_trait() else { - // there is no way to define a type that needs non-const drop - // without having the lang item present. - return false; - }; + let destruct = cx.tcx.require_lang_item(LangItem::Destruct, None); let obligation = Obligation::new( ObligationCause::dummy(), cx.param_env, ty::Binder::dummy(ty::TraitPredicate { trait_ref: ty::TraitRef { - def_id: drop_trait, + def_id: destruct, substs: cx.tcx.mk_substs_trait(ty, &[]), }, constness: ty::BoundConstness::ConstIfConst, @@ -174,15 +171,16 @@ impl Qualif for NeedsNonConstDrop { cx.tcx.infer_ctxt().enter(|infcx| { let mut selcx = SelectionContext::new(&infcx); let Some(impl_src) = selcx.select(&obligation).ok().flatten() else { - // If we couldn't select a const drop candidate, then it's bad + // If we couldn't select a const destruct candidate, then it's bad return true; }; if !matches!( impl_src, - ImplSource::ConstDrop(_) | ImplSource::Param(_, ty::BoundConstness::ConstIfConst) + ImplSource::ConstDestruct(_) + | ImplSource::Param(_, ty::BoundConstness::ConstIfConst) ) { - // If our const drop candidate is not ConstDrop or implied by the param env, + // If our const destruct candidate is not ConstDestruct or implied by the param env, // then it's bad return true; } |
