Expand let-else allow tests
The #[allow(...)] directive was tested for the body and the pattern, but non-presence of it wasn't tested. Furthermore, it wasn't tested for the expression. We add expression tests as well as ones checking the non-presence of the directive.
This commit is contained in:
parent
c1aa85475c
commit
e7730dcb7e
6 changed files with 80 additions and 4 deletions
30
src/test/ui/let-else/let-else-allow-in-expr.rs
Normal file
30
src/test/ui/let-else/let-else-allow-in-expr.rs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#![feature(let_else)]
|
||||||
|
|
||||||
|
#![deny(unused_variables)]
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let Some(_): Option<u32> = ({
|
||||||
|
let x = 1; //~ ERROR unused variable: `x`
|
||||||
|
Some(1)
|
||||||
|
}) else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
#[allow(unused_variables)]
|
||||||
|
let Some(_): Option<u32> = ({
|
||||||
|
let x = 1;
|
||||||
|
Some(1)
|
||||||
|
}) else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
let Some(_): Option<u32> = ({
|
||||||
|
#[allow(unused_variables)]
|
||||||
|
let x = 1;
|
||||||
|
Some(1)
|
||||||
|
}) else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
|
let x = 1; //~ ERROR unused variable: `x`
|
||||||
|
}
|
20
src/test/ui/let-else/let-else-allow-in-expr.stderr
Normal file
20
src/test/ui/let-else/let-else-allow-in-expr.stderr
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
error: unused variable: `x`
|
||||||
|
--> $DIR/let-else-allow-in-expr.rs:7:13
|
||||||
|
|
|
||||||
|
LL | let x = 1;
|
||||||
|
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
||||||
|
|
|
||||||
|
note: the lint level is defined here
|
||||||
|
--> $DIR/let-else-allow-in-expr.rs:3:9
|
||||||
|
|
|
||||||
|
LL | #![deny(unused_variables)]
|
||||||
|
| ^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: unused variable: `x`
|
||||||
|
--> $DIR/let-else-allow-in-expr.rs:29:9
|
||||||
|
|
|
||||||
|
LL | let x = 1;
|
||||||
|
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
// check-pass
|
|
||||||
// issue #89807
|
// issue #89807
|
||||||
|
|
||||||
#![feature(let_else)]
|
#![feature(let_else)]
|
||||||
|
@ -10,5 +9,7 @@ fn main() {
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
let banana = 1;
|
let banana = 1;
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
let Some(chaenomeles) = value else { return }; // OK
|
let Some(chaenomeles) = value.clone() else { return }; // OK
|
||||||
|
|
||||||
|
let Some(chaenomeles) = value else { return }; //~ ERROR unused variable: `chaenomeles`
|
||||||
}
|
}
|
||||||
|
|
14
src/test/ui/let-else/let-else-allow-unused.stderr
Normal file
14
src/test/ui/let-else/let-else-allow-unused.stderr
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
error: unused variable: `chaenomeles`
|
||||||
|
--> $DIR/let-else-allow-unused.rs:14:14
|
||||||
|
|
|
||||||
|
LL | let Some(chaenomeles) = value else { return };
|
||||||
|
| ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chaenomeles`
|
||||||
|
|
|
||||||
|
note: the lint level is defined here
|
||||||
|
--> $DIR/let-else-allow-unused.rs:5:8
|
||||||
|
|
|
||||||
|
LL | #[deny(unused_variables)]
|
||||||
|
| ^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
|
@ -10,5 +10,10 @@ fn main() {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let Some(_): Option<u32> = Some(Default::default()) else {
|
||||||
|
let x = 1; //~ ERROR unused variable: `x`
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
let x = 1; //~ ERROR unused variable: `x`
|
let x = 1; //~ ERROR unused variable: `x`
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error: unused variable: `x`
|
error: unused variable: `x`
|
||||||
--> $DIR/let-else-check.rs:13:9
|
--> $DIR/let-else-check.rs:18:9
|
||||||
|
|
|
|
||||||
LL | let x = 1;
|
LL | let x = 1;
|
||||||
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
||||||
|
@ -10,5 +10,11 @@ note: the lint level is defined here
|
||||||
LL | #![deny(unused_variables)]
|
LL | #![deny(unused_variables)]
|
||||||
| ^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: aborting due to previous error
|
error: unused variable: `x`
|
||||||
|
--> $DIR/let-else-check.rs:14:13
|
||||||
|
|
|
||||||
|
LL | let x = 1;
|
||||||
|
| ^ help: if this is intentional, prefix it with an underscore: `_x`
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue