E0119 update error format
This commit is contained in:
parent
e804a3cf25
commit
2f36ecfff0
@ -141,12 +141,18 @@ impl<'cx, 'tcx,'v> intravisit::Visitor<'v> for OverlapChecker<'cx, 'tcx> {
|
||||
self.tcx.sess, self.tcx.span_of_impl(impl_def_id).unwrap(), E0119,
|
||||
"conflicting implementations of trait `{}`{}:",
|
||||
overlap.trait_desc,
|
||||
overlap.self_desc.map_or(String::new(),
|
||||
|ty| format!(" for type `{}`", ty)));
|
||||
overlap.self_desc.clone().map_or(String::new(),
|
||||
|ty| format!(" for type `{}`", ty)));
|
||||
|
||||
match self.tcx.span_of_impl(overlap.with_impl) {
|
||||
Ok(span) => {
|
||||
err.span_note(span, "conflicting implementation is here:");
|
||||
err.span_label(span,
|
||||
&format!("first implementation here"));
|
||||
err.span_label(self.tcx.span_of_impl(impl_def_id).unwrap(),
|
||||
&format!("conflicting implementation{}",
|
||||
overlap.self_desc
|
||||
.map_or(String::new(),
|
||||
|ty| format!(" for `{}`", ty))));
|
||||
}
|
||||
Err(cname) => {
|
||||
err.note(&format!("conflicting implementation in crate `{}`",
|
||||
|
@ -12,7 +12,7 @@ trait MyTrait {
|
||||
fn get(&self) -> usize;
|
||||
}
|
||||
|
||||
impl<T> MyTrait for T {
|
||||
impl<T> MyTrait for T { //~ NOTE first implementation here
|
||||
fn get(&self) -> usize { 0 }
|
||||
}
|
||||
|
||||
@ -21,6 +21,7 @@ struct Foo {
|
||||
}
|
||||
|
||||
impl MyTrait for Foo { //~ ERROR E0119
|
||||
//~| NOTE conflicting implementation for `Foo`
|
||||
fn get(&self) -> usize { self.value }
|
||||
}
|
||||
|
||||
|
@ -11,12 +11,13 @@
|
||||
struct MyStruct;
|
||||
|
||||
impl Drop for MyStruct {
|
||||
//~^ NOTE conflicting implementation is here
|
||||
//~^ NOTE first implementation here
|
||||
fn drop(&mut self) { }
|
||||
}
|
||||
|
||||
impl Drop for MyStruct {
|
||||
//~^ ERROR conflicting implementations of trait
|
||||
//~| NOTE conflicting implementation for `MyStruct`
|
||||
fn drop(&mut self) { }
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user