Skip to content

Commit 2932db1

Browse files
author
Jonathan Turner
authored
Rollup merge of #35961 - 0xmohit:pr/error-codes-E0445-E0454, r=GuillaumeGomez
Update E0445 and E0454 to new error format Fixes #35922. Fixes #35930. Part of #35233. r? @GuillaumeGomez
2 parents 411a85e + 11e9b8d commit 2932db1

File tree

4 files changed

+21
-8
lines changed

4 files changed

+21
-8
lines changed

src/librustc_metadata/creader.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ fn register_native_lib(sess: &Session,
101101
if name.is_empty() {
102102
match span {
103103
Some(span) => {
104-
span_err!(sess, span, E0454,
105-
"#[link(name = \"\")] given with empty name");
104+
struct_span_err!(sess, span, E0454,
105+
"#[link(name = \"\")] given with empty name")
106+
.span_label(span, &format!("empty name given"))
107+
.emit();
106108
}
107109
None => {
108110
sess.err("empty library name given via `-l`");

src/librustc_privacy/lib.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -964,8 +964,11 @@ impl<'a, 'tcx: 'a, 'v> Visitor<'v> for SearchInterfaceForPrivateItemsVisitor<'a,
964964
if !vis.is_at_least(self.required_visibility, &self.tcx.map) {
965965
if self.tcx.sess.features.borrow().pub_restricted ||
966966
self.old_error_set.contains(&trait_ref.ref_id) {
967-
span_err!(self.tcx.sess, trait_ref.path.span, E0445,
968-
"private trait in public interface");
967+
struct_span_err!(self.tcx.sess, trait_ref.path.span, E0445,
968+
"private trait in public interface")
969+
.span_label(trait_ref.path.span, &format!(
970+
"private trait can't be public"))
971+
.emit();
969972
} else {
970973
self.tcx.sess.add_lint(lint::builtin::PRIVATE_IN_PUBLIC,
971974
node_id,

src/test/compile-fail/E0445.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,14 @@ trait Foo {
1212
fn dummy(&self) { }
1313
}
1414

15-
pub trait Bar : Foo {} //~ ERROR E0445
16-
pub struct Bar2<T: Foo>(pub T); //~ ERROR E0445
17-
pub fn foo<T: Foo> (t: T) {} //~ ERROR E0445
15+
pub trait Bar : Foo {}
16+
//~^ ERROR private trait in public interface [E0445]
17+
//~| NOTE private trait can't be public
18+
pub struct Bar2<T: Foo>(pub T);
19+
//~^ ERROR private trait in public interface [E0445]
20+
//~| NOTE private trait can't be public
21+
pub fn foo<T: Foo> (t: T) {}
22+
//~^ ERROR private trait in public interface [E0445]
23+
//~| NOTE private trait can't be public
1824

1925
fn main() {}

src/test/compile-fail/E0454.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
#[link(name = "")] extern {} //~ ERROR E0454
11+
#[link(name = "")] extern {}
12+
//~^ ERROR E0454
13+
//~| NOTE empty name given
1214

1315
fn main() {
1416
}

0 commit comments

Comments
 (0)