From af131d55b6bb0e6824cf5921d04cbb5fc02c47d9 Mon Sep 17 00:00:00 2001 From: Eduard-Mihai Burtescu Date: Tue, 5 Feb 2019 13:24:49 +0200 Subject: [PATCH] rustc_mir: remove qualify_consts::Qualif::FN_ARGUMENT. --- src/librustc_mir/transform/qualify_consts.rs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 44c7327044f..0d3080d3f22 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -41,16 +41,13 @@ struct Qualif: u8 { // Constant containing an ADT that implements Drop. const NEEDS_DROP = 1 << 1; - // Function argument. - const FN_ARGUMENT = 1 << 2; - // Not constant at all - non-`const fn` calls, asm!, // pointer comparisons, ptr-to-int casts, etc. - const NOT_CONST = 1 << 3; + const NOT_CONST = 1 << 2; // Refers to temporaries which cannot be promoted as // promote_consts decided they weren't simple enough. - const NOT_PROMOTABLE = 1 << 4; + const NOT_PROMOTABLE = 1 << 3; // Const items can only have MUTABLE_INTERIOR // and NOT_PROMOTABLE without producing an error. @@ -136,10 +133,6 @@ fn qualify_local(&self, local: Local) -> Qualif { let mut qualif = self.local_qualif[local] .unwrap_or(Qualif::NOT_CONST); - if let LocalKind::Arg = kind { - qualif = qualif | Qualif::FN_ARGUMENT; - } - if !self.temp_promotion_state[local].is_promotable() { qualif = qualif | Qualif::NOT_PROMOTABLE; } @@ -498,9 +491,8 @@ fn new(tcx: TyCtxt<'a, 'tcx, 'tcx>, let mut local_qualif = IndexVec::from_elem(None, &mir.local_decls); for arg in mir.args_iter() { - let mut qualif = Qualif::NEEDS_DROP; - qualif.restrict(mir.local_decls[arg].ty, tcx, param_env); - local_qualif[arg] = Some(qualif); + let qualif = Qualif::for_ty(mir.local_decls[arg].ty, tcx, param_env); + local_qualif[arg] = Some(Qualif::NOT_PROMOTABLE | qualif); } Checker { -- 2.44.0