]> git.lizzy.rs Git - rust.git/commitdiff
Merge all "Copy not implemented" errors
authorleonardo.yvens <leoyvens@gmail.com>
Wed, 9 May 2018 13:05:59 +0000 (10:05 -0300)
committerleonardo.yvens <leoyvens@gmail.com>
Sat, 12 May 2018 17:24:02 +0000 (14:24 -0300)
src/librustc_typeck/coherence/builtin.rs
src/test/ui/issue-50480.rs
src/test/ui/issue-50480.stderr

index 7627d9071dc0c41149d07e586aa170812ddca09b..2f08a54e10f08839b6cffbb4d58899f9d42af86f 100644 (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);
index 20af6d4cf83d553bd363f4bb714e0ab54fea23be..3427cf6bf9ca2d810fbfde47c0fe60c3cdf9eb1e 100644 (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
index 7aeecfaabb312623b5ad87de6961b2bf429c88bb..3714a0b72b7b8658355bf2a11d4efdecdc439dba 100644 (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`.