Skip to content

Commit

Permalink
Rollup merge of rust-lang#39306 - GuillaumeGomez:newtype_help, r=eddyb
Browse files Browse the repository at this point in the history
Add note for E0117

Fixes rust-lang#39249.

I just applied the suggestion of @durka since I don't see anything else to add.
  • Loading branch information
alexcrichton committed Jan 28, 2017
2 parents ac1e923 + eaf182e commit 13e3b36
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/librustc_typeck/coherence/orphan.rs
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ impl<'cx, 'tcx, 'v> ItemLikeVisitor<'v> for OrphanChecker<'cx, 'tcx> {
.span_label(item.span, &format!("impl doesn't use types inside crate"))
.note(&format!("the impl does not reference any types defined in \
this crate"))
.note("define and implement a trait or new type instead")
.emit();
return;
}
Expand Down
1 change: 1 addition & 0 deletions src/test/compile-fail/E0117.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
impl Drop for u32 {} //~ ERROR E0117
//~^ NOTE impl doesn't use types inside crate
//~| NOTE the impl does not reference any types defined in this crate
//~| NOTE define and implement a trait or new type instead

fn main() {
}
1 change: 1 addition & 0 deletions src/test/compile-fail/E0206.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ impl Copy for Foo { }
//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use types inside crate
//~| NOTE the impl does not reference any types defined in this crate
//~| NOTE define and implement a trait or new type instead

#[derive(Copy, Clone)]
struct Bar;
Expand Down
5 changes: 4 additions & 1 deletion src/test/compile-fail/coherence-impls-copy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ impl Copy for (MyType, MyType) {}
//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use types inside crate
//~| NOTE the impl does not reference any types defined in this crate
//~| NOTE define and implement a trait or new type instead

impl Copy for &'static NotSync {}
//~^ ERROR the trait `Copy` may not be implemented for this type
Expand All @@ -46,15 +47,17 @@ impl Copy for [MyType] {}
//~^ ERROR the trait `Copy` may not be implemented for this type
//~| NOTE type is not a structure or enumeration
//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use types inside crate
//~| NOTE the impl does not reference any types defined in this crate
//~| NOTE define and implement a trait or new type instead
//~| NOTE impl doesn't use types inside crate

impl Copy for &'static [NotSync] {}
//~^ ERROR the trait `Copy` may not be implemented for this type
//~| NOTE type is not a structure or enumeration
//~| ERROR only traits defined in the current crate can be implemented for arbitrary types
//~| NOTE impl doesn't use types inside crate
//~| NOTE the impl does not reference any types defined in this crate
//~| NOTE define and implement a trait or new type instead

fn main() {
}

0 comments on commit 13e3b36

Please sign in to comment.