diff options
| author | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-10-22 15:00:51 -0700 |
|---|---|---|
| committer | Dylan MacKenzie <ecstaticmorse@gmail.com> | 2019-10-25 20:57:07 -0700 |
| commit | 653865658d8ac4001d712fb26f382a84ed36f951 (patch) | |
| tree | 4c64648e421c8fbf1e5be9400069815593c65b94 | |
| parent | 748bbf259a4835792a37558def86d5ef85a93de3 (diff) | |
| download | rust-653865658d8ac4001d712fb26f382a84ed36f951.tar.gz rust-653865658d8ac4001d712fb26f382a84ed36f951.zip | |
Use `is_lang_panic_fn` from `check_consts` in `promote_consts`
| -rw-r--r-- | src/librustc_mir/transform/check_consts/mod.rs | 3 | ||||
| -rw-r--r-- | src/librustc_mir/transform/promote_consts.rs | 9 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/librustc_mir/transform/check_consts/mod.rs b/src/librustc_mir/transform/check_consts/mod.rs index 427d53397d5..364e23ed8d0 100644 --- a/src/librustc_mir/transform/check_consts/mod.rs +++ b/src/librustc_mir/transform/check_consts/mod.rs @@ -117,7 +117,8 @@ impl fmt::Display for ConstKind { } } -fn is_lang_panic_fn(tcx: TyCtxt<'tcx>, def_id: DefId) -> bool { +/// Returns `true` if this `DefId` points to one of the official `panic` lang items. +pub fn is_lang_panic_fn(tcx: TyCtxt<'tcx>, def_id: DefId) -> bool { Some(def_id) == tcx.lang_items().panic_fn() || Some(def_id) == tcx.lang_items().begin_panic_fn() } diff --git a/src/librustc_mir/transform/promote_consts.rs b/src/librustc_mir/transform/promote_consts.rs index a3d535188f4..3af08090853 100644 --- a/src/librustc_mir/transform/promote_consts.rs +++ b/src/librustc_mir/transform/promote_consts.rs @@ -29,7 +29,7 @@ use rustc_target::spec::abi::Abi; use std::{iter, mem, usize}; -use crate::transform::check_consts::{qualifs, Item, ConstKind}; +use crate::transform::check_consts::{qualifs, Item, ConstKind, is_lang_panic_fn}; /// State of a temporary during collection and promotion. #[derive(Copy, Clone, PartialEq, Eq, Debug)] @@ -250,11 +250,6 @@ impl std::ops::Deref for Validator<'a, 'tcx> { struct Unpromotable; impl<'tcx> Validator<'_, 'tcx> { - fn is_const_panic_fn(&self, def_id: DefId) -> bool { - Some(def_id) == self.tcx.lang_items().panic_fn() || - Some(def_id) == self.tcx.lang_items().begin_panic_fn() - } - fn validate_candidate(&self, candidate: Candidate) -> Result<(), Unpromotable> { match candidate { Candidate::Ref(loc) => { @@ -700,7 +695,7 @@ impl<'tcx> Validator<'_, 'tcx> { ty::FnDef(def_id, _) => { self.tcx.is_const_fn(def_id) || self.tcx.is_unstable_const_fn(def_id).is_some() || - self.is_const_panic_fn(def_id) + is_lang_panic_fn(self.tcx, self.def_id) } _ => false, }; |
