about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2020-04-05 17:02:44 -0700
committerEsteban Küber <esteban@kuber.com.ar>2020-04-05 17:03:20 -0700
commit17a95232b35766a24d2575c7fa1ef52c9fbf97de (patch)
treea2ca830b6c86864fbdc52f12315300a39fe91aa1 /src
parentc9f55ea689e7e582cd146dc1b06850843530a8af (diff)
downloadrust-17a95232b35766a24d2575c7fa1ef52c9fbf97de.tar.gz
rust-17a95232b35766a24d2575c7fa1ef52c9fbf97de.zip
Reduce the visual clutter
Using a single label for constraints and generic arguments.
Diffstat (limited to 'src')
-rw-r--r--src/librustc_ast_passes/ast_validation.rs9
-rw-r--r--src/test/ui/suggestions/suggest-move-types.stderr74
2 files changed, 27 insertions, 56 deletions
diff --git a/src/librustc_ast_passes/ast_validation.rs b/src/librustc_ast_passes/ast_validation.rs
index 82ba52a3f14..9563325fe32 100644
--- a/src/librustc_ast_passes/ast_validation.rs
+++ b/src/librustc_ast_passes/ast_validation.rs
@@ -688,8 +688,13 @@ impl<'a> AstValidator<'a> {
                 arg_spans.clone(),
                 "generic arguments must come before the first constraint",
             )
-            .span_labels(constraint_spans, "constraint")
-            .span_labels(arg_spans, "generic argument")
+            .span_label(constraint_spans[0], &format!("constraint{}", pluralize!(constraint_len)))
+            .span_label(
+                *arg_spans.iter().last().unwrap(),
+                &format!("generic argument{}", pluralize!(args_len)),
+            )
+            .span_labels(constraint_spans, "")
+            .span_labels(arg_spans, "")
             .span_suggestion_verbose(
                 data.span,
                 &format!(
diff --git a/src/test/ui/suggestions/suggest-move-types.stderr b/src/test/ui/suggestions/suggest-move-types.stderr
index 4d31a472fe4..3bb6fd6e4f4 100644
--- a/src/test/ui/suggestions/suggest-move-types.stderr
+++ b/src/test/ui/suggestions/suggest-move-types.stderr
@@ -15,9 +15,8 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:33:43
    |
 LL | struct Al<'a, T, M: OneWithLifetime<A=(), T, 'a>> {
-   |                                     ----  ^  ^^ generic argument
-   |                                     |     |
-   |                                     |     generic argument
+   |                                     ----  ^  ^^ generic arguments
+   |                                     |
    |                                     constraint
    |
 help: move the constraint after the generic arguments
@@ -29,13 +28,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:40:46
    |
 LL | struct B<T, U, V, M: Three<A=(), B=(), C=(), T, U, V>> {
-   |                            ----  ----  ----  ^  ^  ^ generic argument
-   |                            |     |     |     |  |
-   |                            |     |     |     |  generic argument
-   |                            |     |     |     generic argument
-   |                            |     |     constraint
-   |                            |     constraint
-   |                            constraint
+   |                            ----  ----  ----  ^  ^  ^ generic arguments
+   |                            |
+   |                            constraints
    |
 help: move the constraints after the generic arguments
    |
@@ -46,16 +41,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:48:71
    |
 LL | struct Bl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<A=(), B=(), C=(), T, U, V, 'a, 'b, 'c>> {
-   |                                                     ----  ----  ----  ^  ^  ^  ^^  ^^  ^^ generic argument
-   |                                                     |     |     |     |  |  |  |   |
-   |                                                     |     |     |     |  |  |  |   generic argument
-   |                                                     |     |     |     |  |  |  generic argument
-   |                                                     |     |     |     |  |  generic argument
-   |                                                     |     |     |     |  generic argument
-   |                                                     |     |     |     generic argument
-   |                                                     |     |     constraint
-   |                                                     |     constraint
-   |                                                     constraint
+   |                                                     ----  ----  ----  ^  ^  ^  ^^  ^^  ^^ generic arguments
+   |                                                     |
+   |                                                     constraints
    |
 help: move the constraints after the generic arguments
    |
@@ -66,13 +54,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:57:28
    |
 LL | struct C<T, U, V, M: Three<T, A=(), B=(), C=(), U, V>> {
-   |                            ^  ----  ----  ----  ^  ^ generic argument
-   |                            |  |     |     |     |
-   |                            |  |     |     |     generic argument
-   |                            |  |     |     constraint
-   |                            |  |     constraint
-   |                            |  constraint
-   |                            generic argument
+   |                            ^  ----  ----  ----  ^  ^ generic arguments
+   |                               |
+   |                               constraints
    |
 help: move the constraints after the generic arguments
    |
@@ -83,16 +67,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:65:53
    |
 LL | struct Cl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), C=(), U, 'b, V, 'c>> {
-   |                                                     ^  ^^  ----  ----  ----  ^  ^^  ^  ^^ generic argument
-   |                                                     |  |   |     |     |     |  |   |
-   |                                                     |  |   |     |     |     |  |   generic argument
-   |                                                     |  |   |     |     |     |  generic argument
-   |                                                     |  |   |     |     |     generic argument
-   |                                                     |  |   |     |     constraint
-   |                                                     |  |   |     constraint
-   |                                                     |  |   constraint
-   |                                                     |  generic argument
-   |                                                     generic argument
+   |                                                     ^  ^^  ----  ----  ----  ^  ^^  ^  ^^ generic arguments
+   |                                                            |
+   |                                                            constraints
    |
 help: move the constraints after the generic arguments
    |
@@ -103,13 +80,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:74:28
    |
 LL | struct D<T, U, V, M: Three<T, A=(), B=(), U, C=(), V>> {
-   |                            ^  ----  ----  ^  ----  ^ generic argument
-   |                            |  |     |     |  |
-   |                            |  |     |     |  constraint
-   |                            |  |     |     generic argument
-   |                            |  |     constraint
-   |                            |  constraint
-   |                            generic argument
+   |                            ^  ----  ----  ^  ----  ^ generic arguments
+   |                               |
+   |                               constraints
    |
 help: move the constraints after the generic arguments
    |
@@ -120,16 +93,9 @@ error: generic arguments must come before the first constraint
   --> $DIR/suggest-move-types.rs:82:53
    |
 LL | struct Dl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), U, 'b, C=(), V, 'c>> {
-   |                                                     ^  ^^  ----  ----  ^  ^^  ----  ^  ^^ generic argument
-   |                                                     |  |   |     |     |  |   |     |
-   |                                                     |  |   |     |     |  |   |     generic argument
-   |                                                     |  |   |     |     |  |   constraint
-   |                                                     |  |   |     |     |  generic argument
-   |                                                     |  |   |     |     generic argument
-   |                                                     |  |   |     constraint
-   |                                                     |  |   constraint
-   |                                                     |  generic argument
-   |                                                     generic argument
+   |                                                     ^  ^^  ----  ----  ^  ^^  ----  ^  ^^ generic arguments
+   |                                                            |
+   |                                                            constraints
    |
 help: move the constraints after the generic arguments
    |