diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-02-06 18:11:48 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2019-02-14 13:36:51 +0200 |
| commit | 99fc3eff5795024b6d1bb510b06dfd4cb2049b72 (patch) | |
| tree | 5b75eab79c6bd331ed75eaf92e7da64c6c3956b1 /src | |
| parent | 1d6332def3c3091ba3287e5d473f80443dc0a882 (diff) | |
| download | rust-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.rs | 11 |
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()); } |
