diff --git a/src/librustc_metadata/creader.rs b/src/librustc_metadata/creader.rs index 4a656b180f259..46469efea6bc8 100644 --- a/src/librustc_metadata/creader.rs +++ b/src/librustc_metadata/creader.rs @@ -101,8 +101,10 @@ fn register_native_lib(sess: &Session, if name.is_empty() { match span { Some(span) => { - span_err!(sess, span, E0454, - "#[link(name = \"\")] given with empty name"); + struct_span_err!(sess, span, E0454, + "#[link(name = \"\")] given with empty name") + .span_label(span, &format!("empty name given")) + .emit(); } None => { sess.err("empty library name given via `-l`"); diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index de9ddcd934216..028632ad7c006 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -964,8 +964,11 @@ impl<'a, 'tcx: 'a, 'v> Visitor<'v> for SearchInterfaceForPrivateItemsVisitor<'a, if !vis.is_at_least(self.required_visibility, &self.tcx.map) { if self.tcx.sess.features.borrow().pub_restricted || self.old_error_set.contains(&trait_ref.ref_id) { - span_err!(self.tcx.sess, trait_ref.path.span, E0445, - "private trait in public interface"); + struct_span_err!(self.tcx.sess, trait_ref.path.span, E0445, + "private trait in public interface") + .span_label(trait_ref.path.span, &format!( + "private trait can't be public")) + .emit(); } else { self.tcx.sess.add_lint(lint::builtin::PRIVATE_IN_PUBLIC, node_id, diff --git a/src/test/compile-fail/E0445.rs b/src/test/compile-fail/E0445.rs index 6b360c60a0f90..7c5c862a6f812 100644 --- a/src/test/compile-fail/E0445.rs +++ b/src/test/compile-fail/E0445.rs @@ -12,8 +12,14 @@ trait Foo { fn dummy(&self) { } } -pub trait Bar : Foo {} //~ ERROR E0445 -pub struct Bar2(pub T); //~ ERROR E0445 -pub fn foo (t: T) {} //~ ERROR E0445 +pub trait Bar : Foo {} +//~^ ERROR private trait in public interface [E0445] +//~| NOTE private trait can't be public +pub struct Bar2(pub T); +//~^ ERROR private trait in public interface [E0445] +//~| NOTE private trait can't be public +pub fn foo (t: T) {} +//~^ ERROR private trait in public interface [E0445] +//~| NOTE private trait can't be public fn main() {} diff --git a/src/test/compile-fail/E0454.rs b/src/test/compile-fail/E0454.rs index 1439c3133d9ca..39887927c885f 100644 --- a/src/test/compile-fail/E0454.rs +++ b/src/test/compile-fail/E0454.rs @@ -8,7 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#[link(name = "")] extern {} //~ ERROR E0454 +#[link(name = "")] extern {} +//~^ ERROR E0454 +//~| NOTE empty name given fn main() { }