about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2019-02-05 13:24:49 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2019-02-14 13:36:51 +0200
commitaf131d55b6bb0e6824cf5921d04cbb5fc02c47d9 (patch)
treec523f16188a95eae28111d6722fb5c76983ee626
parentb4fbebb636d0f31658354f9cecee52d265602d2e (diff)
downloadrust-af131d55b6bb0e6824cf5921d04cbb5fc02c47d9.tar.gz
rust-af131d55b6bb0e6824cf5921d04cbb5fc02c47d9.zip
rustc_mir: remove qualify_consts::Qualif::FN_ARGUMENT.
-rw-r--r--src/librustc_mir/transform/qualify_consts.rs16
1 files 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 @@ bitflags::bitflags! {
         // 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 @@ impl<'a, 'tcx> Qualifier<'a, 'tcx> {
                 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 @@ impl<'a, 'tcx> Checker<'a, '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 {