about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Lygin <alygin@gmail.com>2016-09-26 22:49:22 +0300
committerAndrew Lygin <alygin@gmail.com>2016-09-26 22:49:22 +0300
commit157208b0466babe560bcf836dadd0cb8f09e3a80 (patch)
tree5eac87cc1f1d67c32e3526c6d90d57bcdc81ca9c
parentc2769285ad6d078c9a4499ad9e11278e4b78023c (diff)
downloadrust-157208b0466babe560bcf836dadd0cb8f09e3a80.tar.gz
rust-157208b0466babe560bcf836dadd0cb8f09e3a80.zip
New error format for E0512
-rw-r--r--src/librustc/middle/intrinsicck.rs9
-rw-r--r--src/test/compile-fail/E0512.rs1
2 files changed, 8 insertions, 2 deletions
diff --git a/src/librustc/middle/intrinsicck.rs b/src/librustc/middle/intrinsicck.rs
index 61bcc05bbb4..1acd0fb0f79 100644
--- a/src/librustc/middle/intrinsicck.rs
+++ b/src/librustc/middle/intrinsicck.rs
@@ -103,11 +103,16 @@ impl<'a, 'gcx, 'tcx> ExprVisitor<'a, 'gcx, 'tcx> {
             }
         };
 
-        span_err!(self.infcx.tcx.sess, span, E0512,
+        struct_span_err!(self.infcx.tcx.sess, span, E0512,
                   "transmute called with differently sized types: \
                    {} ({}) to {} ({})",
                   from, skeleton_string(from, sk_from),
-                  to, skeleton_string(to, sk_to));
+                  to, skeleton_string(to, sk_to))
+            .span_label(span,
+                &format!("transmuting between {} and {}",
+                    skeleton_string(from, sk_from),
+                    skeleton_string(to, sk_to)))
+            .emit();
     }
 }
 
diff --git a/src/test/compile-fail/E0512.rs b/src/test/compile-fail/E0512.rs
index 25f96271641..2b89873ee45 100644
--- a/src/test/compile-fail/E0512.rs
+++ b/src/test/compile-fail/E0512.rs
@@ -12,4 +12,5 @@ fn takes_u8(_: u8) {}
 
 fn main() {
     unsafe { takes_u8(::std::mem::transmute(0u16)); } //~ ERROR E0512
+                                                      //~| transmuting between 16 bits and 8 bits
 }