1
Fork 0

Merge all "Copy not implemented" errors

This commit is contained in:
leonardo.yvens 2018-05-09 10:05:59 -03:00
parent 804bcf7716
commit 3deb75729e
3 changed files with 14 additions and 24 deletions

View file

@ -121,16 +121,14 @@ fn visit_implementation_of_copy<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
span
};
for field in fields {
struct_span_err!(tcx.sess,
span,
E0204,
"the trait `Copy` may not be implemented for this type")
.span_label(
tcx.def_span(field.did),
"this field does not implement `Copy`")
.emit()
let mut err = struct_span_err!(tcx.sess,
span,
E0204,
"the trait `Copy` may not be implemented for this type");
for span in fields.iter().map(|f| tcx.def_span(f.did)) {
err.span_label(span, "this field does not implement `Copy`");
}
err.emit()
}
Err(CopyImplementationError::NotAnAdt) => {
let item = tcx.hir.expect_item(impl_node_id);

View file

@ -10,7 +10,6 @@
#[derive(Clone, Copy)]
//~^ ERROR the trait `Copy` may not be implemented for this type
//~| ERROR the trait `Copy` may not be implemented for this type
struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
//~^ ERROR cannot find type `NotDefined` in this scope
//~| ERROR the trait bound `i32: std::iter::Iterator` is not satisfied

View file

@ -1,11 +1,11 @@
error[E0412]: cannot find type `NotDefined` in this scope
--> $DIR/issue-50480.rs:14:12
--> $DIR/issue-50480.rs:13:12
|
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
| ^^^^^^^^^^ not found in this scope
error[E0277]: the trait bound `i32: std::iter::Iterator` is not satisfied
--> $DIR/issue-50480.rs:14:24
--> $DIR/issue-50480.rs:13:24
|
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
| ^^^^^^^^^^^^^^^^^^^^^^^^ `i32` is not an iterator; maybe try calling `.iter()` or a similar method
@ -17,20 +17,13 @@ error[E0204]: the trait `Copy` may not be implemented for this type
|
LL | #[derive(Clone, Copy)]
| ^^^^
...
LL | //~^ ERROR the trait `Copy` may not be implemented for this type
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
| --------- this field does not implement `Copy`
| --------- ------- this field does not implement `Copy`
| |
| this field does not implement `Copy`
error[E0204]: the trait `Copy` may not be implemented for this type
--> $DIR/issue-50480.rs:11:17
|
LL | #[derive(Clone, Copy)]
| ^^^^
...
LL | struct Foo(NotDefined, <i32 as Iterator>::Item, Vec<i32>, String);
| ------- this field does not implement `Copy`
error: aborting due to 4 previous errors
error: aborting due to 3 previous errors
Some errors occurred: E0204, E0277, E0412.
For more information about an error, try `rustc --explain E0204`.