Skip to content

Commit

Permalink
Expand let-else allow tests
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
est31 committed Feb 21, 2022
1 parent c1aa854 commit e7730dc
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 4 deletions.
30 changes: 30 additions & 0 deletions src/test/ui/let-else/let-else-allow-in-expr.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 20 additions & 0 deletions src/test/ui/let-else/let-else-allow-in-expr.stderr
Original file line number Diff line number Diff line change
@@ -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

5 changes: 3 additions & 2 deletions src/test/ui/let-else/let-else-allow-unused.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// check-pass
// issue #89807

#![feature(let_else)]
Expand All @@ -10,5 +9,7 @@ fn main() {
#[allow(unused)]
let banana = 1;
#[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 changes: 14 additions & 0 deletions src/test/ui/let-else/let-else-allow-unused.stderr
Original file line number Diff line number Diff line change
@@ -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

5 changes: 5 additions & 0 deletions src/test/ui/let-else/let-else-check.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,10 @@ fn main() {
return;
};

let Some(_): Option<u32> = Some(Default::default()) else {
let x = 1; //~ ERROR unused variable: `x`
return;
};

let x = 1; //~ ERROR unused variable: `x`
}
10 changes: 8 additions & 2 deletions src/test/ui/let-else/let-else-check.stderr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
error: unused variable: `x`
--> $DIR/let-else-check.rs:13:9
--> $DIR/let-else-check.rs:18:9
|
LL | let x = 1;
| ^ help: if this is intentional, prefix it with an underscore: `_x`
Expand All @@ -10,5 +10,11 @@ note: the lint level is defined here
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

0 comments on commit e7730dc

Please sign in to comment.