Skip to content

Commit b22352f

Browse files
author
Jonathan Turner
authored
Rollup merge of #35831 - trixnz:error-428, r=jonathandturner
Update E0428 to new format Fixes #35798 as part of #35233. r? @jonathandturner
2 parents 0d69b88 + d791aa1 commit b22352f

File tree

5 files changed

+19
-4
lines changed

5 files changed

+19
-4
lines changed

src/librustc_resolve/lib.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -3382,7 +3382,11 @@ impl<'a> Resolver<'a> {
33823382
},
33833383
(true, _) | (_, true) => struct_span_err!(self.session, span, E0260, "{}", msg),
33843384
_ => match (old_binding.is_import(), binding.is_import()) {
3385-
(false, false) => struct_span_err!(self.session, span, E0428, "{}", msg),
3385+
(false, false) => {
3386+
let mut e = struct_span_err!(self.session, span, E0428, "{}", msg);
3387+
e.span_label(span, &format!("already defined"));
3388+
e
3389+
},
33863390
(true, true) => {
33873391
let mut e = struct_span_err!(self.session, span, E0252, "{}", msg);
33883392
e.span_label(span, &format!("already imported"));

src/test/compile-fail/E0428.rs

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

11-
struct Bar;
11+
struct Bar; //~ previous definition of `Bar` here
12+
//~| previous definition of `Bar` here
1213
struct Bar; //~ ERROR E0428
13-
//~^ ERROR E0428
14+
//~| NOTE already defined
15+
//~| ERROR E0428
16+
//~| NOTE already defined
1417

1518
fn main () {
1619
}

src/test/compile-fail/enum-and-module-in-same-scope.rs

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

11-
enum Foo { //~ NOTE previous definition
11+
enum Foo { //~ NOTE previous definition of `Foo` here
1212
X
1313
}
1414

1515
mod Foo { //~ ERROR a type named `Foo` has already been defined
16+
//~| NOTE already defined
1617
pub static X: isize = 42;
1718
fn f() { f() } // Check that this does not result in a resolution error
1819
}

src/test/compile-fail/issue-21546.rs

+6
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mod Foo { }
1717
#[allow(dead_code)]
1818
struct Foo;
1919
//~^ ERROR a module named `Foo` has already been defined in this module
20+
//~| NOTE already defined
2021

2122
#[allow(non_snake_case)]
2223
mod Bar { }
@@ -25,6 +26,7 @@ mod Bar { }
2526
#[allow(dead_code)]
2627
struct Bar(i32);
2728
//~^ ERROR a module named `Bar` has already been defined
29+
//~| NOTE already defined
2830

2931

3032
#[allow(dead_code)]
@@ -34,6 +36,7 @@ struct Baz(i32);
3436
#[allow(non_snake_case)]
3537
mod Baz { }
3638
//~^ ERROR a type named `Baz` has already been defined
39+
//~| NOTE already defined
3740

3841

3942
#[allow(dead_code)]
@@ -43,6 +46,7 @@ struct Qux { x: bool }
4346
#[allow(non_snake_case)]
4447
mod Qux { }
4548
//~^ ERROR a type named `Qux` has already been defined
49+
//~| NOTE already defined
4650

4751

4852
#[allow(dead_code)]
@@ -52,6 +56,7 @@ struct Quux;
5256
#[allow(non_snake_case)]
5357
mod Quux { }
5458
//~^ ERROR a type named `Quux` has already been defined
59+
//~| NOTE already defined
5560

5661

5762
#[allow(dead_code)]
@@ -61,5 +66,6 @@ enum Corge { A, B }
6166
#[allow(non_snake_case)]
6267
mod Corge { }
6368
//~^ ERROR a type named `Corge` has already been defined
69+
//~| NOTE already defined
6470

6571
fn main() { }

src/test/compile-fail/trait-duplicate-methods.rs

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
trait Foo {
1212
fn orange(&self); //~ NOTE previous definition of `orange` here
1313
fn orange(&self); //~ ERROR a value named `orange` has already been defined in this trait
14+
//~| NOTE already define
1415
}
1516

1617
fn main() {}

0 commit comments

Comments
 (0)