diff options
| author | Reese Williams <reese@reesew.io> | 2021-02-14 13:14:11 -0500 |
|---|---|---|
| committer | Reese Williams <reese@reesew.io> | 2021-02-14 13:15:37 -0500 |
| commit | 7879099ad3ef6c84d8df96521c30b7bf4c573615 (patch) | |
| tree | 7e0f91902509509f34936b59decac7ea70928d87 | |
| parent | 8a83c8f64f717f7cf569f589b42c6535591f8854 (diff) | |
| download | rust-7879099ad3ef6c84d8df96521c30b7bf4c573615.tar.gz rust-7879099ad3ef6c84d8df96521c30b7bf4c573615.zip | |
Clarify error message and remove pretty printing in help suggestions.
| -rw-r--r-- | compiler/rustc_typeck/src/check/pat.rs | 14 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-17800.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/missing/missing-fields-in-struct-pattern.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/parser/recover-from-bad-variant.stderr | 4 | ||||
| -rw-r--r-- | src/test/ui/structs/struct-tuple-field-names.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/structs/struct-tuple-field-names.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/type/type-check/issue-41314.stderr | 4 |
7 files changed, 25 insertions, 17 deletions
diff --git a/compiler/rustc_typeck/src/check/pat.rs b/compiler/rustc_typeck/src/check/pat.rs index f16f8c9caf2..cfcd0d673d0 100644 --- a/compiler/rustc_typeck/src/check/pat.rs +++ b/compiler/rustc_typeck/src/check/pat.rs @@ -1253,17 +1253,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { self.tcx.sess, pat.span, E0769, - "tuple variant `{}` uses a bare index in a struct pattern", + "tuple variant `{}` written as struct variant", path ); err.span_suggestion( - pat.span, + qpath.span().shrink_to_hi().until(pat.span), "use the tuple variant pattern syntax instead", - format!( - "{}({})", - path, - self.get_suggested_tuple_struct_pattern(fields, variant) - ), + format!("({})", self.get_suggested_tuple_struct_pattern(fields, variant)), Applicability::MaybeIncorrect, ); return Some(err); @@ -1421,9 +1417,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { ) }; err.span_suggestion( - pat.span, + qpath.span().shrink_to_hi().until(pat.span), "use the tuple variant pattern syntax instead", - format!("{}({})", path, sugg), + format!("({})", sugg), appl, ); return Some(err); diff --git a/src/test/ui/issues/issue-17800.stderr b/src/test/ui/issues/issue-17800.stderr index fc034a0cbf3..4f961823231 100644 --- a/src/test/ui/issues/issue-17800.stderr +++ b/src/test/ui/issues/issue-17800.stderr @@ -2,7 +2,9 @@ error[E0769]: tuple variant `MyOption::MySome` written as struct variant --> $DIR/issue-17800.rs:8:9 | LL | MyOption::MySome { x: 42 } => (), - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the tuple variant pattern syntax instead: `MyOption::MySome(42)` + | ----------------^^^^^^^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(42)` error: aborting due to previous error diff --git a/src/test/ui/missing/missing-fields-in-struct-pattern.stderr b/src/test/ui/missing/missing-fields-in-struct-pattern.stderr index 6583524aad1..81d208e4bc3 100644 --- a/src/test/ui/missing/missing-fields-in-struct-pattern.stderr +++ b/src/test/ui/missing/missing-fields-in-struct-pattern.stderr @@ -2,7 +2,9 @@ error[E0769]: tuple variant `S` written as struct variant --> $DIR/missing-fields-in-struct-pattern.rs:4:12 | LL | if let S { a, b, c, d } = S(1, 2, 3, 4) { - | ^^^^^^^^^^^^^^^^ help: use the tuple variant pattern syntax instead: `S(a, b, c, d)` + | -^^^^^^^^^^^^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(a, b, c, d)` error: aborting due to previous error diff --git a/src/test/ui/parser/recover-from-bad-variant.stderr b/src/test/ui/parser/recover-from-bad-variant.stderr index 89232a519d7..86086cf97ec 100644 --- a/src/test/ui/parser/recover-from-bad-variant.stderr +++ b/src/test/ui/parser/recover-from-bad-variant.stderr @@ -22,7 +22,9 @@ error[E0769]: tuple variant `Enum::Bar` written as struct variant --> $DIR/recover-from-bad-variant.rs:12:9 | LL | Enum::Bar { a, b } => {} - | ^^^^^^^^^^^^^^^^^^ help: use the tuple variant pattern syntax instead: `Enum::Bar(a, b)` + | ---------^^^^^^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(a, b)` error: aborting due to 3 previous errors diff --git a/src/test/ui/structs/struct-tuple-field-names.rs b/src/test/ui/structs/struct-tuple-field-names.rs index 0ebbff75e59..7bd54af1dbe 100644 --- a/src/test/ui/structs/struct-tuple-field-names.rs +++ b/src/test/ui/structs/struct-tuple-field-names.rs @@ -6,7 +6,7 @@ fn main() { let x = E::S(1, 2.2); match x { E::S { 0, 1 } => {} - //~^ ERROR tuple variant `E::S` uses a bare index in a struct pattern [E0769] + //~^ ERROR tuple variant `E::S` written as struct variant [E0769] } let y = S(1, 2.2); match y { diff --git a/src/test/ui/structs/struct-tuple-field-names.stderr b/src/test/ui/structs/struct-tuple-field-names.stderr index 2021aa9d70e..80c6187cbbe 100644 --- a/src/test/ui/structs/struct-tuple-field-names.stderr +++ b/src/test/ui/structs/struct-tuple-field-names.stderr @@ -1,14 +1,18 @@ -error[E0769]: tuple variant `E::S` uses a bare index in a struct pattern +error[E0769]: tuple variant `E::S` written as struct variant --> $DIR/struct-tuple-field-names.rs:8:9 | LL | E::S { 0, 1 } => {} - | ^^^^^^^^^^^^^ help: use the tuple variant pattern syntax instead: `E::S(_, _)` + | ----^^^^^^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(_, _)` error[E0769]: tuple variant `S` written as struct variant --> $DIR/struct-tuple-field-names.rs:13:9 | LL | S { } => {} - | ^^^^^ help: use the tuple variant pattern syntax instead: `S(_, _)` + | -^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(_, _)` error: aborting due to 2 previous errors diff --git a/src/test/ui/type/type-check/issue-41314.stderr b/src/test/ui/type/type-check/issue-41314.stderr index bd4d2071c20..78c14d37518 100644 --- a/src/test/ui/type/type-check/issue-41314.stderr +++ b/src/test/ui/type/type-check/issue-41314.stderr @@ -2,7 +2,9 @@ error[E0769]: tuple variant `X::Y` written as struct variant --> $DIR/issue-41314.rs:7:9 | LL | X::Y { number } => {} - | ^^^^^^^^^^^^^^^ help: use the tuple variant pattern syntax instead: `X::Y(number)` + | ----^^^^^^^^^^^ + | | + | help: use the tuple variant pattern syntax instead: `(number)` error: aborting due to previous error |
