Skip to content

Commit

Permalink
Rollup merge of rust-lang#81655 - matsujika:suggest-accessing-field-r…
Browse files Browse the repository at this point in the history
…ewording, r=estebank

Improve wording of suggestion about accessing field

Follow-up to rust-lang#81504

The compiler at this moment suggests "you might have meant to use field `b` of type `B`", sounding like it's type `B` which has the field `b`.
r? ``@estebank``
  • Loading branch information
jackh726 authored Feb 2, 2021
2 parents f126301 + bad0f28 commit 1b1d551
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 13 deletions.
2 changes: 1 addition & 1 deletion compiler/rustc_infer/src/infer/error_reporting/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1855,7 +1855,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
diag.span_suggestion(
span,
&format!(
"you might have meant to use field `{}` of type `{}`",
"you might have meant to use field `{}` whose type is `{}`",
name, ty
),
suggestion,
Expand Down
8 changes: 4 additions & 4 deletions src/test/ui/suggestions/field-access.fixed
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ union Foo {
fn main() {
let a = A { b: B::Fst };
if let B::Fst = a.b {}; //~ ERROR mismatched types [E0308]
//~^ HELP you might have meant to use field `b` of type `B`
//~^ HELP you might have meant to use field `b` whose type is `B`
match a.b {
//~^ HELP you might have meant to use field `b` of type `B`
//~| HELP you might have meant to use field `b` of type `B`
//~^ HELP you might have meant to use field `b` whose type is `B`
//~| HELP you might have meant to use field `b` whose type is `B`
B::Fst => (), //~ ERROR mismatched types [E0308]
B::Snd => (), //~ ERROR mismatched types [E0308]
}

let foo = Foo { bar: 42 };
match unsafe { foo.bar } {
//~^ HELP you might have meant to use field `bar` of type `u32`
//~^ HELP you might have meant to use field `bar` whose type is `u32`
1u32 => (), //~ ERROR mismatched types [E0308]
_ => (),
}
Expand Down
8 changes: 4 additions & 4 deletions src/test/ui/suggestions/field-access.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ union Foo {
fn main() {
let a = A { b: B::Fst };
if let B::Fst = a {}; //~ ERROR mismatched types [E0308]
//~^ HELP you might have meant to use field `b` of type `B`
//~^ HELP you might have meant to use field `b` whose type is `B`
match a {
//~^ HELP you might have meant to use field `b` of type `B`
//~| HELP you might have meant to use field `b` of type `B`
//~^ HELP you might have meant to use field `b` whose type is `B`
//~| HELP you might have meant to use field `b` whose type is `B`
B::Fst => (), //~ ERROR mismatched types [E0308]
B::Snd => (), //~ ERROR mismatched types [E0308]
}

let foo = Foo { bar: 42 };
match foo {
//~^ HELP you might have meant to use field `bar` of type `u32`
//~^ HELP you might have meant to use field `bar` whose type is `u32`
1u32 => (), //~ ERROR mismatched types [E0308]
_ => (),
}
Expand Down
8 changes: 4 additions & 4 deletions src/test/ui/suggestions/field-access.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ LL | if let B::Fst = a {};
| |
| expected struct `A`, found enum `B`
|
help: you might have meant to use field `b` of type `B`
help: you might have meant to use field `b` whose type is `B`
|
LL | if let B::Fst = a.b {};
| ^^^
Expand All @@ -26,7 +26,7 @@ LL | match a {
LL | B::Fst => (),
| ^^^^^^ expected struct `A`, found enum `B`
|
help: you might have meant to use field `b` of type `B`
help: you might have meant to use field `b` whose type is `B`
|
LL | match a.b {
| ^^^
Expand All @@ -43,7 +43,7 @@ LL | match a {
LL | B::Snd => (),
| ^^^^^^ expected struct `A`, found enum `B`
|
help: you might have meant to use field `b` of type `B`
help: you might have meant to use field `b` whose type is `B`
|
LL | match a.b {
| ^^^
Expand All @@ -57,7 +57,7 @@ LL |
LL | 1u32 => (),
| ^^^^ expected union `Foo`, found `u32`
|
help: you might have meant to use field `bar` of type `u32`
help: you might have meant to use field `bar` whose type is `u32`
|
LL | match unsafe { foo.bar } {
| ^^^^^^^^^^^^^^^^^^
Expand Down

0 comments on commit 1b1d551

Please sign in to comment.