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);
#[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
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
|
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`.