Skip to content

Commit

Permalink
Rollup merge of rust-lang#35455 - munyari:e0204, r=jonathandturner
Browse files Browse the repository at this point in the history
Update E0204 to the new error format

Part of rust-lang#35233

Addresses rust-lang#35381
"r? @jonathandturner
  • Loading branch information
Jonathan Turner authored Aug 7, 2016
2 parents 236c089 + 54e1e98 commit 1703f87
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
13 changes: 8 additions & 5 deletions src/librustc_typeck/coherence/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -311,11 +311,14 @@ impl<'a, 'gcx, 'tcx> CoherenceChecker<'a, 'gcx, 'tcx> {
match param_env.can_type_implement_copy(tcx, self_type, span) {
Ok(()) => {}
Err(CopyImplementationError::InfrigingField(name)) => {
span_err!(tcx.sess, span, E0204,
"the trait `Copy` may not be \
implemented for this type; field \
`{}` does not implement `Copy`",
name)
struct_span_err!(tcx.sess, span, E0204,
"the trait `Copy` may not be implemented for \
this type")
.span_label(span, &format!(
"field `{}` does not implement `Copy`", name)
)
.emit()

}
Err(CopyImplementationError::InfrigingVariant(name)) => {
span_err!(tcx.sess, span, E0205,
Expand Down
9 changes: 7 additions & 2 deletions src/test/compile-fail/E0204.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@ struct Foo {
foo: Vec<u32>,
}

impl Copy for Foo { } //~ ERROR E0204
impl Copy for Foo { }
//~^ ERROR E0204
//~| NOTE field `foo` does not implement `Copy`

#[derive(Copy)] //~ ERROR E0204
#[derive(Copy)]
//~^ ERROR E0204
//~| NOTE field `ty` does not implement `Copy`
//~| NOTE in this expansion of #[derive(Copy)]
struct Foo2<'a> {
ty: &'a mut bool,
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/compile-fail/issue-27340.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

struct Foo;
#[derive(Copy, Clone)]
//~^ ERROR the trait `Copy` may not be implemented for this type; field `0` does not implement
//~^ ERROR the trait `Copy` may not be implemented for this type
struct Bar(Foo);

fn main() {}

0 comments on commit 1703f87

Please sign in to comment.