diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 0f54978c1dec..2caeba6c06a3 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -557,9 +557,11 @@ impl<'a, 'tcx> Visitor<'tcx> for Qualifier<'a, 'tcx, 'tcx> { match proj.elem { ProjectionElem::Deref => { if context.is_mutating_use() { + // `not_const` errors out in const contexts this.not_const() } else { - this.qualif = Qualif::NOT_CONST; + // just make sure this doesn't get promoted + this.qualif.add(Qualif::NOT_CONST); } let base_ty = proj.base.ty(this.mir, this.tcx).to_ty(this.tcx); match this.mode {