From 17a95232b35766a24d2575c7fa1ef52c9fbf97de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Esteban=20K=C3=BCber?= Date: Sun, 5 Apr 2020 17:02:44 -0700 Subject: [PATCH] Reduce the visual clutter Using a single label for constraints and generic arguments. --- src/librustc_ast_passes/ast_validation.rs | 9 ++- .../ui/suggestions/suggest-move-types.stderr | 74 +++++-------------- 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> { - | ---- ^ ^^ 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> { - | ---- ---- ---- ^ ^ ^ 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> { - | ---- ---- ---- ^ ^ ^ ^^ ^^ ^^ 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> { - | ^ ---- ---- ---- ^ ^ 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> { - | ^ ^^ ---- ---- ---- ^ ^^ ^ ^^ 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> { - | ^ ---- ---- ^ ---- ^ 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> { - | ^ ^^ ---- ---- ^ ^^ ---- ^ ^^ 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 |