diff options
| author | leonardo.yvens <leoyvens@gmail.com> | 2018-05-09 10:05:59 -0300 |
|---|---|---|
| committer | leonardo.yvens <leoyvens@gmail.com> | 2018-05-12 14:24:02 -0300 |
| commit | 3deb75729eb08d930da90f2e9407b2f79f0025b7 (patch) | |
| tree | 7570a304f11b9264b9ce8960fb8e2e2195c884f9 /src | |
| parent | 804bcf7716f14a55e85c599733a58348b5c05c82 (diff) | |
| download | rust-3deb75729eb08d930da90f2e9407b2f79f0025b7.tar.gz rust-3deb75729eb08d930da90f2e9407b2f79f0025b7.zip | |
Merge all "Copy not implemented" errors
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/coherence/builtin.rs | 16 | ||||
| -rw-r--r-- | src/test/ui/issue-50480.rs | 1 | ||||
| -rw-r--r-- | src/test/ui/issue-50480.stderr | 21 |
3 files changed, 14 insertions, 24 deletions
diff --git a/src/librustc_typeck/coherence/builtin.rs b/src/librustc_typeck/coherence/builtin.rs index 7627d9071dc..2f08a54e10f 100644 --- a/src/librustc_typeck/coherence/builtin.rs +++ b/src/librustc_typeck/coherence/builtin.rs @@ -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); diff --git a/src/test/ui/issue-50480.rs b/src/test/ui/issue-50480.rs index 20af6d4cf83..3427cf6bf9c 100644 --- a/src/test/ui/issue-50480.rs +++ b/src/test/ui/issue-50480.rs @@ -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 diff --git a/src/test/ui/issue-50480.stderr b/src/test/ui/issue-50480.stderr index 7aeecfaabb3..3714a0b72b7 100644 --- a/src/test/ui/issue-50480.stderr +++ b/src/test/ui/issue-50480.stderr @@ -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`. |
