Skip to content

Commit 51f25b3

Browse files
committed
resolve: clean up diagnostics for name conflicts.
1 parent 8e61ff2 commit 51f25b3

File tree

6 files changed

+19
-40
lines changed

6 files changed

+19
-40
lines changed

src/librustc_resolve/lib.rs

+8-29
Original file line numberDiff line numberDiff line change
@@ -3156,40 +3156,19 @@ impl<'a> Resolver<'a> {
31563156
};
31573157

31583158
let mut err = match (old_binding.is_extern_crate(), binding.is_extern_crate()) {
3159-
(true, true) => {
3160-
let mut e = struct_span_err!(self.session, span, E0259, "{}", msg);
3161-
e.span_label(span, &format!("`{}` was already imported", name));
3162-
e
3163-
},
3164-
(true, _) | (_, true) if binding.is_import() && old_binding.is_import() => {
3165-
let mut e = struct_span_err!(self.session, span, E0254, "{}", msg);
3166-
e.span_label(span, &"already imported");
3167-
e
3168-
},
3169-
(true, _) | (_, true) => {
3170-
let mut e = struct_span_err!(self.session, span, E0260, "{}", msg);
3171-
e.span_label(span, &format!("`{}` already imported", name));
3172-
e
3159+
(true, true) => struct_span_err!(self.session, span, E0259, "{}", msg),
3160+
(true, _) | (_, true) => match binding.is_import() && old_binding.is_import() {
3161+
true => struct_span_err!(self.session, span, E0254, "{}", msg),
3162+
false => struct_span_err!(self.session, span, E0260, "{}", msg),
31733163
},
31743164
_ => match (old_binding.is_import(), binding.is_import()) {
3175-
(false, false) => {
3176-
let mut e = struct_span_err!(self.session, span, E0428, "{}", msg);
3177-
e.span_label(span, &format!("already defined"));
3178-
e
3179-
},
3180-
(true, true) => {
3181-
let mut e = struct_span_err!(self.session, span, E0252, "{}", msg);
3182-
e.span_label(span, &format!("already imported"));
3183-
e
3184-
},
3185-
_ => {
3186-
let mut e = struct_span_err!(self.session, span, E0255, "{}", msg);
3187-
e.span_label(span, &format!("`{}` was already imported", name));
3188-
e
3189-
}
3165+
(false, false) => struct_span_err!(self.session, span, E0428, "{}", msg),
3166+
(true, true) => struct_span_err!(self.session, span, E0252, "{}", msg),
3167+
_ => struct_span_err!(self.session, span, E0255, "{}", msg),
31903168
},
31913169
};
31923170

3171+
err.span_label(span, &format!("`{}` already {}", name, participle));
31933172
if old_binding.span != syntax_pos::DUMMY_SP {
31943173
err.span_label(old_binding.span, &format!("previous {} of `{}` here", noun, name));
31953174
}

src/test/compile-fail/E0259.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ extern crate collections;
1515

1616
extern crate libc as collections;
1717
//~^ ERROR E0259
18-
//~| NOTE `collections` was already imported
18+
//~| NOTE `collections` already imported
1919

2020
fn main() {}

src/test/compile-fail/blind-item-item-shadow.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ mod foo { pub mod foo { } } //~ NOTE previous definition of `foo` here
1212

1313
use foo::foo;
1414
//~^ ERROR a module named `foo` has already been defined in this module
15-
//~| was already imported
15+
//~| `foo` already defined
1616

1717
fn main() {}

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
use self::A; //~ NOTE previous import of `A` here
1212
use self::B; //~ NOTE previous import of `B` here
1313
mod A {} //~ ERROR a module named `A` has already been imported in this module
14-
//~| `A` was already imported
14+
//~| `A` already imported
1515
pub mod B {} //~ ERROR a module named `B` has already been imported in this module
16-
//~| `B` was already imported
16+
//~| `B` already imported
1717
mod C {
1818
use C::D; //~ NOTE previous import of `D` here
1919
mod D {} //~ ERROR a module named `D` has already been imported in this module
20-
//~| `D` was already imported
20+
//~| `D` already imported
2121
}
2222

2323
fn main() {}

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

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ use std::ops::Div; //~ NOTE previous import
1515
use std::ops::Rem; //~ NOTE previous import
1616

1717
type Add = bool; //~ ERROR a trait named `Add` has already been imported in this module
18-
//~| was already imported
18+
//~| `Add` already imported
1919
struct Sub { x: f32 } //~ ERROR a trait named `Sub` has already been imported in this module
20-
//~| was already imported
20+
//~| `Sub` already imported
2121
enum Mul { A, B } //~ ERROR a trait named `Mul` has already been imported in this module
22-
//~| was already imported
22+
//~| `Mul` already imported
2323
mod Div { } //~ ERROR a trait named `Div` has already been imported in this module
24-
//~| was already imported
24+
//~| `Div` already imported
2525
trait Rem { } //~ ERROR a trait named `Rem` has already been imported in this module
26-
//~| was already imported
26+
//~| `Rem` already imported
2727

2828
fn main() {}

src/test/compile-fail/resolve-conflict-item-vs-import.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ use std::mem::transmute;
1313

1414
fn transmute() {}
1515
//~^ ERROR a value named `transmute` has already been imported in this module
16-
//~| was already imported
16+
//~| `transmute` already imported
1717
fn main() {
1818
}

0 commit comments

Comments
 (0)