Fix suggestion for nested struct patterns
This commit is contained in:
parent
497ee321af
commit
2bff77d255
4 changed files with 75 additions and 8 deletions
20
src/test/ui/suggestions/ignore-nested-field-binding.fixed
Normal file
20
src/test/ui/suggestions/ignore-nested-field-binding.fixed
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Regression test for #88403, where prefixing with an underscore was
|
||||
// erroneously suggested for a nested shorthand struct field binding.
|
||||
|
||||
// run-rustfix
|
||||
#![allow(unused)]
|
||||
#![forbid(unused_variables)]
|
||||
|
||||
struct Inner { i: i32 }
|
||||
struct Outer { o: Inner }
|
||||
|
||||
fn foo(Outer { o: Inner { i: _ } }: Outer) {}
|
||||
//~^ ERROR: unused variable: `i`
|
||||
//~| HELP: try ignoring the field
|
||||
|
||||
fn main() {
|
||||
let s = Outer { o: Inner { i: 42 } };
|
||||
let Outer { o: Inner { i: _ } } = s;
|
||||
//~^ ERROR: unused variable: `i`
|
||||
//~| HELP: try ignoring the field
|
||||
}
|
||||
20
src/test/ui/suggestions/ignore-nested-field-binding.rs
Normal file
20
src/test/ui/suggestions/ignore-nested-field-binding.rs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// Regression test for #88403, where prefixing with an underscore was
|
||||
// erroneously suggested for a nested shorthand struct field binding.
|
||||
|
||||
// run-rustfix
|
||||
#![allow(unused)]
|
||||
#![forbid(unused_variables)]
|
||||
|
||||
struct Inner { i: i32 }
|
||||
struct Outer { o: Inner }
|
||||
|
||||
fn foo(Outer { o: Inner { i } }: Outer) {}
|
||||
//~^ ERROR: unused variable: `i`
|
||||
//~| HELP: try ignoring the field
|
||||
|
||||
fn main() {
|
||||
let s = Outer { o: Inner { i: 42 } };
|
||||
let Outer { o: Inner { i } } = s;
|
||||
//~^ ERROR: unused variable: `i`
|
||||
//~| HELP: try ignoring the field
|
||||
}
|
||||
20
src/test/ui/suggestions/ignore-nested-field-binding.stderr
Normal file
20
src/test/ui/suggestions/ignore-nested-field-binding.stderr
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
error: unused variable: `i`
|
||||
--> $DIR/ignore-nested-field-binding.rs:11:27
|
||||
|
|
||||
LL | fn foo(Outer { o: Inner { i } }: Outer) {}
|
||||
| ^ help: try ignoring the field: `i: _`
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/ignore-nested-field-binding.rs:6:11
|
||||
|
|
||||
LL | #![forbid(unused_variables)]
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: unused variable: `i`
|
||||
--> $DIR/ignore-nested-field-binding.rs:17:28
|
||||
|
|
||||
LL | let Outer { o: Inner { i } } = s;
|
||||
| ^ help: try ignoring the field: `i: _`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue