From 07e2dd7d96a7fb235ac8a4a56f5c436e381f573d Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Fri, 13 Jul 2018 16:55:15 +0200 Subject: [PATCH] Don't accidentally promote union access in MIR --- src/librustc_mir/transform/qualify_consts.rs | 2 +- src/test/ui/const-eval/union_promotion.nll.stderr | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 src/test/ui/const-eval/union_promotion.nll.stderr diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 89d539f6bca..7a724a2e394 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -515,7 +515,7 @@ impl<'a, 'tcx> Visitor<'tcx> for Qualifier<'a, 'tcx, 'tcx> { if let Some(def) = base_ty.ty_adt_def() { if def.is_union() { match this.mode { - Mode::Fn => {}, + Mode::Fn => this.not_const(), Mode::ConstFn => { if !this.tcx.sess.features_untracked().const_fn_union { emit_feature_err( diff --git a/src/test/ui/const-eval/union_promotion.nll.stderr b/src/test/ui/const-eval/union_promotion.nll.stderr deleted file mode 100644 index ea95a8b42a4..00000000000 --- a/src/test/ui/const-eval/union_promotion.nll.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error: internal compiler error: unexpected region for local data ReStatic - --> $DIR/union_promotion.rs:19:29 - | -LL | let x: &'static bool = &unsafe { //~ borrowed value does not live long enough - | _____________________________^ -LL | | Foo { a: &1 }.b == Foo { a: &2 }.b -LL | | }; - | |_____^ - -error: aborting due to previous error -