Add tests for issue #67691

This commit is contained in:
sapir 2020-01-01 01:51:37 +02:00
parent 94d346360d
commit 0c156af20d
3 changed files with 174 additions and 0 deletions

View File

@ -0,0 +1,61 @@
// run-rustfix
#![feature(or_patterns)]
#![deny(unused)]
pub enum MyEnum {
A { i: i32, j: i32 },
B { i: i32, j: i32 },
}
pub fn no_ref(x: MyEnum) {
use MyEnum::*;
match x {
A { i, j: _ } | B { i, j: _ } => { //~ ERROR unused variable
println!("{}", i);
}
}
}
pub fn with_ref(x: MyEnum) {
use MyEnum::*;
match x {
A { i, j: _ } | B { i, j: _ } => { //~ ERROR unused variable
println!("{}", i);
}
}
}
pub fn inner_no_ref(x: Option<MyEnum>) {
use MyEnum::*;
match x {
Some(A { i, j: _ } | B { i, j: _ }) => { //~ ERROR unused variable
println!("{}", i);
}
_ => {}
}
}
pub fn inner_with_ref(x: Option<MyEnum>) {
use MyEnum::*;
match x {
Some(A { i, j: _ } | B { i, j: _ }) => { //~ ERROR unused variable
println!("{}", i);
}
_ => {}
}
}
pub fn main() {
no_ref(MyEnum::A { i: 1, j: 2 });
with_ref(MyEnum::A { i: 1, j: 2 });
inner_no_ref(Some(MyEnum::A { i: 1, j: 2 }));
inner_with_ref(Some(MyEnum::A { i: 1, j: 2 }));
}

View File

@ -0,0 +1,61 @@
// run-rustfix
#![feature(or_patterns)]
#![deny(unused)]
pub enum MyEnum {
A { i: i32, j: i32 },
B { i: i32, j: i32 },
}
pub fn no_ref(x: MyEnum) {
use MyEnum::*;
match x {
A { i, j } | B { i, j } => { //~ ERROR unused variable
println!("{}", i);
}
}
}
pub fn with_ref(x: MyEnum) {
use MyEnum::*;
match x {
A { i, ref j } | B { i, ref j } => { //~ ERROR unused variable
println!("{}", i);
}
}
}
pub fn inner_no_ref(x: Option<MyEnum>) {
use MyEnum::*;
match x {
Some(A { i, j } | B { i, j }) => { //~ ERROR unused variable
println!("{}", i);
}
_ => {}
}
}
pub fn inner_with_ref(x: Option<MyEnum>) {
use MyEnum::*;
match x {
Some(A { i, ref j } | B { i, ref j }) => { //~ ERROR unused variable
println!("{}", i);
}
_ => {}
}
}
pub fn main() {
no_ref(MyEnum::A { i: 1, j: 2 });
with_ref(MyEnum::A { i: 1, j: 2 });
inner_no_ref(Some(MyEnum::A { i: 1, j: 2 }));
inner_with_ref(Some(MyEnum::A { i: 1, j: 2 }));
}

View File

@ -0,0 +1,52 @@
error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:15:16
|
LL | A { i, j } | B { i, j } => {
| ^ ^
|
note: the lint level is defined here
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:4:9
|
LL | #![deny(unused)]
| ^^^^^^
= note: `#[deny(unused_variables)]` implied by `#[deny(unused)]`
help: try ignoring the field
|
LL | A { i, j: _ } | B { i, j: _ } => {
| ^^^^ ^^^^
error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:25:16
|
LL | A { i, ref j } | B { i, ref j } => {
| ^^^^^ ^^^^^
|
help: try ignoring the field
|
LL | A { i, j: _ } | B { i, j: _ } => {
| ^^^^ ^^^^
error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:35:21
|
LL | Some(A { i, j } | B { i, j }) => {
| ^ ^
|
help: try ignoring the field
|
LL | Some(A { i, j: _ } | B { i, j: _ }) => {
| ^^^^ ^^^^
error: unused variable: `j`
--> $DIR/issue-67691-unused-field-in-or-pattern.rs:47:21
|
LL | Some(A { i, ref j } | B { i, ref j }) => {
| ^^^^^ ^^^^^
|
help: try ignoring the field
|
LL | Some(A { i, j: _ } | B { i, j: _ }) => {
| ^^^^ ^^^^
error: aborting due to 5 previous errors