mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 09:14:20 +00:00
Rollup merge of #75031 - JohnTitor:unused-parens-braces-yield, r=lcnr
Do not trigger `unused_{braces,parens}` lints with `yield` Fixes #74883 r? @lcnr
This commit is contained in:
commit
db3e10f9cb
@ -422,7 +422,7 @@ trait UnusedDelimLint {
|
||||
lhs_needs_parens
|
||||
|| (followed_by_block
|
||||
&& match inner.kind {
|
||||
ExprKind::Ret(_) | ExprKind::Break(..) => true,
|
||||
ExprKind::Ret(_) | ExprKind::Break(..) | ExprKind::Yield(..) => true,
|
||||
_ => parser::contains_exterior_struct_lit(&inner),
|
||||
})
|
||||
}
|
||||
|
33
src/test/ui/lint/issue-74883-unused-paren-baren-yield.rs
Normal file
33
src/test/ui/lint/issue-74883-unused-paren-baren-yield.rs
Normal file
@ -0,0 +1,33 @@
|
||||
#![feature(generator_trait)]
|
||||
#![feature(generators)]
|
||||
#![deny(unused_braces, unused_parens)]
|
||||
|
||||
use std::ops::Generator;
|
||||
use std::pin::Pin;
|
||||
|
||||
fn main() {
|
||||
let mut x = |_| {
|
||||
while let Some(_) = (yield) {}
|
||||
while let Some(_) = {yield} {}
|
||||
|
||||
// Only warn these cases
|
||||
while let Some(_) = ({yield}) {} //~ ERROR: unnecessary parentheses
|
||||
while let Some(_) = ((yield)) {} //~ ERROR: unnecessary parentheses
|
||||
{{yield}}; //~ ERROR: unnecessary braces
|
||||
{( yield )}; //~ ERROR: unnecessary parentheses
|
||||
|
||||
// FIXME: Reduce duplicate warnings.
|
||||
// Perhaps we should tweak checks in `BlockRetValue`?
|
||||
while let Some(_) = {(yield)} {}
|
||||
//~^ ERROR: unnecessary braces
|
||||
//~| ERROR: unnecessary parentheses
|
||||
while let Some(_) = {{yield}} {}
|
||||
//~^ ERROR: unnecessary braces
|
||||
//~| ERROR: unnecessary braces
|
||||
|
||||
// FIXME: It'd be great if we could also warn them.
|
||||
((yield));
|
||||
({ yield });
|
||||
};
|
||||
let _ = Pin::new(&mut x).resume(Some(5));
|
||||
}
|
62
src/test/ui/lint/issue-74883-unused-paren-baren-yield.stderr
Normal file
62
src/test/ui/lint/issue-74883-unused-paren-baren-yield.stderr
Normal file
@ -0,0 +1,62 @@
|
||||
error: unnecessary parentheses around `let` scrutinee expression
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:14:29
|
||||
|
|
||||
LL | while let Some(_) = ({yield}) {}
|
||||
| ^^^^^^^^^ help: remove these parentheses
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:3:24
|
||||
|
|
||||
LL | #![deny(unused_braces, unused_parens)]
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error: unnecessary parentheses around `let` scrutinee expression
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:15:29
|
||||
|
|
||||
LL | while let Some(_) = ((yield)) {}
|
||||
| ^^^^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary braces around block return value
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:16:10
|
||||
|
|
||||
LL | {{yield}};
|
||||
| ^^^^^^^ help: remove these braces
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:3:9
|
||||
|
|
||||
LL | #![deny(unused_braces, unused_parens)]
|
||||
| ^^^^^^^^^^^^^
|
||||
|
||||
error: unnecessary parentheses around block return value
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:17:10
|
||||
|
|
||||
LL | {( yield )};
|
||||
| ^^^^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary braces around `let` scrutinee expression
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:21:29
|
||||
|
|
||||
LL | while let Some(_) = {(yield)} {}
|
||||
| ^^^^^^^^^ help: remove these braces
|
||||
|
||||
error: unnecessary parentheses around block return value
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:21:30
|
||||
|
|
||||
LL | while let Some(_) = {(yield)} {}
|
||||
| ^^^^^^^ help: remove these parentheses
|
||||
|
||||
error: unnecessary braces around `let` scrutinee expression
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:24:29
|
||||
|
|
||||
LL | while let Some(_) = {{yield}} {}
|
||||
| ^^^^^^^^^ help: remove these braces
|
||||
|
||||
error: unnecessary braces around block return value
|
||||
--> $DIR/issue-74883-unused-paren-baren-yield.rs:24:30
|
||||
|
|
||||
LL | while let Some(_) = {{yield}} {}
|
||||
| ^^^^^^^ help: remove these braces
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
Loading…
Reference in New Issue
Block a user