about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2019-02-06 18:11:48 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2019-02-14 13:36:51 +0200
commit99fc3eff5795024b6d1bb510b06dfd4cb2049b72 (patch)
tree5b75eab79c6bd331ed75eaf92e7da64c6c3956b1 /src
parent1d6332def3c3091ba3287e5d473f80443dc0a882 (diff)
downloadrust-99fc3eff5795024b6d1bb510b06dfd4cb2049b72.tar.gz
rust-99fc3eff5795024b6d1bb510b06dfd4cb2049b72.zip
rustc_mir: do not treat NEEDS_DROP as unexpected in qualify_consts.
Diffstat (limited to 'src')
-rw-r--r--src/librustc_mir/transform/qualify_consts.rs11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs
index 25d201c3452..960146651cf 100644
--- a/src/librustc_mir/transform/qualify_consts.rs
+++ b/src/librustc_mir/transform/qualify_consts.rs
@@ -48,11 +48,6 @@ bitflags::bitflags! {
         // Refers to temporaries which cannot be promoted as
         // promote_consts decided they weren't simple enough.
         const NOT_PROMOTABLE    = 1 << 3;
-
-        // Const items can only have MUTABLE_INTERIOR
-        // and NOT_PROMOTABLE without producing an error.
-        const CONST_ERROR       = !Qualif::MUTABLE_INTERIOR.bits &
-                                  !Qualif::NOT_PROMOTABLE.bits;
     }
 }
 
@@ -419,13 +414,13 @@ impl<'a, 'tcx> Qualifier<'a, 'tcx> {
         };
 
         // Bail out on oon-`const fn` calls or if the callee had errors.
-        if !is_const_fn || self.qualify_operand(callee).intersects(Qualif::CONST_ERROR) {
+        if !is_const_fn || self.qualify_operand(callee).intersects(Qualif::NOT_CONST) {
             return Qualif::NOT_CONST;
         }
 
         // Bail out if any arguments had errors.
         for arg in args {
-            if self.qualify_operand(arg).intersects(Qualif::CONST_ERROR) {
+            if self.qualify_operand(arg).intersects(Qualif::NOT_CONST) {
                 return Qualif::NOT_CONST;
             }
         }
@@ -668,7 +663,7 @@ impl<'a, 'tcx> Checker<'a, 'tcx> {
 
         // Account for errors in consts by using the
         // conservative type qualification instead.
-        if qualif.intersects(Qualif::CONST_ERROR) {
+        if qualif.intersects(Qualif::NOT_CONST) {
             qualif = self.qualifier().qualify_any_value_of_ty(mir.return_ty());
         }