about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_mir/transform/qualify_consts.rs5
-rw-r--r--src/librustc_resolve/lib.rs6
-rw-r--r--src/test/compile-fail/E0394.rs5
-rw-r--r--src/test/compile-fail/E0422.rs4
4 files changed, 15 insertions, 5 deletions
diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs
index 103a15dadb6..1de67922b1b 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/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index 65e14eee4bc..8b06bae6e84 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -316,11 +316,13 @@ fn resolve_struct_error<'b, 'a: 'b, 'c>(resolver: &'b Resolver<'a>,
             err
         }
         ResolutionError::DoesNotNameAStruct(name) => {
-            struct_span_err!(resolver.session,
+            let mut err = struct_span_err!(resolver.session,
                              span,
                              E0422,
                              "`{}` does not name a structure",
-                             name)
+                             name);
+            err.span_label(span, &format!("not a structure"));
+            err
         }
         ResolutionError::StructVariantUsedAsFunction(path_name) => {
             struct_span_err!(resolver.session,
diff --git a/src/test/compile-fail/E0394.rs b/src/test/compile-fail/E0394.rs
index 1b86b8ad674..e35d038248c 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() {
 }
diff --git a/src/test/compile-fail/E0422.rs b/src/test/compile-fail/E0422.rs
index d1cb7fd9640..61e96b896a6 100644
--- a/src/test/compile-fail/E0422.rs
+++ b/src/test/compile-fail/E0422.rs
@@ -9,5 +9,7 @@
 // except according to those terms.
 
 fn main () {
-    let x = Foo { x: 1, y: 2 }; //~ ERROR E0422
+    let x = Foo { x: 1, y: 2 };
+    //~^ ERROR E0422
+    //~| NOTE not a structure
 }