From 3caa451b9db58836301dd93ffabc0fb493dd4fe7 Mon Sep 17 00:00:00 2001 From: Knight Date: Wed, 17 Aug 2016 01:40:57 +0800 Subject: [PATCH] Updated E0394 to new error message --- src/librustc_mir/transform/qualify_consts.rs | 5 ++++- src/test/compile-fail/E0394.rs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 103a15dadb61c..1de67922b1b3a 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -277,7 +277,10 @@ impl<'a, 'tcx> Qualifier<'a, 'tcx, 'tcx> { } else { "cannot refer to statics by value, use a constant instead" }; - span_err!(self.tcx.sess, self.span, E0394, "{}", msg); + struct_span_err!(self.tcx.sess, self.span, E0394, "{}", msg) + .span_label(self.span, &format!("referring to another static by value")) + .note(&format!("use the address-of operator or a constant instead")) + .emit(); // Replace STATIC with NOT_CONST to avoid further errors. self.qualif = self.qualif - Qualif::STATIC; diff --git a/src/test/compile-fail/E0394.rs b/src/test/compile-fail/E0394.rs index 1b86b8ad67496..e35d038248c81 100644 --- a/src/test/compile-fail/E0394.rs +++ b/src/test/compile-fail/E0394.rs @@ -9,7 +9,10 @@ // except according to those terms. static A: u32 = 0; -static B: u32 = A; //~ ERROR E0394 +static B: u32 = A; +//~^ ERROR E0394 +//~| NOTE referring to another static by value +//~| NOTE use the address-of operator or a constant instead fn main() { }