Rollup merge of #91956 - notriddle:notriddle/unused-parens-range, r=nagisa
fix(rustc_lint): better detect when parens are necessary Fixes #90807
This commit is contained in:
commit
48915315d2
4 changed files with 52 additions and 1 deletions
|
@ -478,8 +478,11 @@ trait UnusedDelimLint {
|
|||
|
||||
lhs_needs_parens
|
||||
|| (followed_by_block
|
||||
&& match inner.kind {
|
||||
&& match &inner.kind {
|
||||
ExprKind::Ret(_) | ExprKind::Break(..) | ExprKind::Yield(..) => true,
|
||||
ExprKind::Range(_lhs, Some(rhs), _limits) => {
|
||||
matches!(rhs.kind, ExprKind::Block(..))
|
||||
}
|
||||
_ => parser::contains_exterior_struct_lit(&inner),
|
||||
})
|
||||
}
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
// Make sure unused parens lint emit is emitted for loop and match.
|
||||
// See https://github.com/rust-lang/rust/issues/90807
|
||||
// and https://github.com/rust-lang/rust/pull/91956#discussion_r771647953
|
||||
#![deny(unused_parens)]
|
||||
|
||||
fn main() {
|
||||
for _ in (1..loop { break 2 }) {} //~ERROR
|
||||
for _ in (1..match () { () => 2 }) {} //~ERROR
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
error: unnecessary parentheses around `for` iterator expression
|
||||
--> $DIR/issue-90807-unused-paren-error.rs:7:14
|
||||
|
|
||||
LL | for _ in (1..loop { break 2 }) {}
|
||||
| ^ ^
|
||||
|
|
||||
note: the lint level is defined here
|
||||
--> $DIR/issue-90807-unused-paren-error.rs:4:9
|
||||
|
|
||||
LL | #![deny(unused_parens)]
|
||||
| ^^^^^^^^^^^^^
|
||||
help: remove these parentheses
|
||||
|
|
||||
LL - for _ in (1..loop { break 2 }) {}
|
||||
LL + for _ in 1..loop { break 2 } {}
|
||||
|
|
||||
|
||||
error: unnecessary parentheses around `for` iterator expression
|
||||
--> $DIR/issue-90807-unused-paren-error.rs:8:14
|
||||
|
|
||||
LL | for _ in (1..match () { () => 2 }) {}
|
||||
| ^ ^
|
||||
|
|
||||
help: remove these parentheses
|
||||
|
|
||||
LL - for _ in (1..match () { () => 2 }) {}
|
||||
LL + for _ in 1..match () { () => 2 } {}
|
||||
|
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
8
src/test/ui/lint/unused/issue-90807-unused-paren.rs
Normal file
8
src/test/ui/lint/unused/issue-90807-unused-paren.rs
Normal file
|
@ -0,0 +1,8 @@
|
|||
// check-pass
|
||||
// Make sure unused parens lint doesn't emit a false positive.
|
||||
// See https://github.com/rust-lang/rust/issues/90807
|
||||
#![deny(unused_parens)]
|
||||
|
||||
fn main() {
|
||||
for _ in (1..{ 2 }) {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue