1
Fork 0

or-patterns: fix fallout from #664128.

This commit is contained in:
Mazdak Farrokhzad 2019-09-05 09:17:19 +02:00
parent 0341b78044
commit 16ba5029a1
3 changed files with 22 additions and 41 deletions

View file

@ -493,10 +493,8 @@ impl EarlyLintPass for UnusedParens {
fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &ast::Expr) { fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &ast::Expr) {
use syntax::ast::ExprKind::*; use syntax::ast::ExprKind::*;
let (value, msg, followed_by_block, left_pos, right_pos) = match e.node { let (value, msg, followed_by_block, left_pos, right_pos) = match e.node {
Let(ref pats, ..) => { Let(ref pat, ..) => {
for p in pats { self.check_unused_parens_pat(cx, pat, false, false);
self.check_unused_parens_pat(cx, p, false, false);
}
return; return;
} }
@ -594,9 +592,7 @@ impl EarlyLintPass for UnusedParens {
} }
fn check_arm(&mut self, cx: &EarlyContext<'_>, arm: &ast::Arm) { fn check_arm(&mut self, cx: &EarlyContext<'_>, arm: &ast::Arm) {
for p in &arm.pats { self.check_unused_parens_pat(cx, &arm.pat, false, false);
self.check_unused_parens_pat(cx, p, false, false);
}
} }
} }

View file

@ -33,10 +33,8 @@ fn or_patterns_no_lint() {
if let &mut (0 | 1) = &mut 0 {} // Same. if let &mut (0 | 1) = &mut 0 {} // Same.
fn foo((Ok(a) | Err(a)): Result<u8, u8>) {} // Doesn't parse if we remove parens for now. fn foo((Ok(a) | Err(a)): Result<u8, u8>) {} // Doesn't parse if we remove parens for now.
//~^ ERROR identifier `a` is bound more than once
let _ = |(Ok(a) | Err(a)): Result<u8, u8>| 1; // `|Ok(a) | Err(a)| 1` parses as bit-or. let _ = |(Ok(a) | Err(a)): Result<u8, u8>| 1; // `|Ok(a) | Err(a)| 1` parses as bit-or.
//~^ ERROR identifier `a` is bound more than once
} }
fn or_patterns_will_lint() { fn or_patterns_will_lint() {

View file

@ -1,15 +1,3 @@
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/issue-54538-unused-parens-lint.rs:35:25
|
LL | fn foo((Ok(a) | Err(a)): Result<u8, u8>) {} // Doesn't parse if we remove parens for now.
| ^ used in a pattern more than once
error[E0416]: identifier `a` is bound more than once in the same pattern
--> $DIR/issue-54538-unused-parens-lint.rs:38:27
|
LL | let _ = |(Ok(a) | Err(a)): Result<u8, u8>| 1; // `|Ok(a) | Err(a)| 1` parses as bit-or.
| ^ used in a pattern more than once
warning: the feature `or_patterns` is incomplete and may cause the compiler to crash warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
--> $DIR/issue-54538-unused-parens-lint.rs:3:12 --> $DIR/issue-54538-unused-parens-lint.rs:3:12
| |
@ -61,113 +49,112 @@ LL | let _ = |(a): u8| 0;
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:43:12 --> $DIR/issue-54538-unused-parens-lint.rs:41:12
| |
LL | if let (0 | 1) = 0 {} LL | if let (0 | 1) = 0 {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:44:13 --> $DIR/issue-54538-unused-parens-lint.rs:42:13
| |
LL | if let ((0 | 1),) = (0,) {} LL | if let ((0 | 1),) = (0,) {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:45:13 --> $DIR/issue-54538-unused-parens-lint.rs:43:13
| |
LL | if let [(0 | 1)] = [0] {} LL | if let [(0 | 1)] = [0] {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:46:16 --> $DIR/issue-54538-unused-parens-lint.rs:44:16
| |
LL | if let 0 | (1 | 2) = 0 {} LL | if let 0 | (1 | 2) = 0 {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:48:15 --> $DIR/issue-54538-unused-parens-lint.rs:46:15
| |
LL | if let TS((0 | 1)) = TS(0) {} LL | if let TS((0 | 1)) = TS(0) {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:50:20 --> $DIR/issue-54538-unused-parens-lint.rs:48:20
| |
LL | if let NS { f: (0 | 1) } = (NS { f: 0 }) {} LL | if let NS { f: (0 | 1) } = (NS { f: 0 }) {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:60:9 --> $DIR/issue-54538-unused-parens-lint.rs:58:9
| |
LL | (_) => {} LL | (_) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:61:9 --> $DIR/issue-54538-unused-parens-lint.rs:59:9
| |
LL | (y) => {} LL | (y) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:62:9 --> $DIR/issue-54538-unused-parens-lint.rs:60:9
| |
LL | (ref r) => {} LL | (ref r) => {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:63:9 --> $DIR/issue-54538-unused-parens-lint.rs:61:9
| |
LL | (e @ 1...2) => {} LL | (e @ 1...2) => {}
| ^^^^^^^^^^^ help: remove these parentheses | ^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:69:9 --> $DIR/issue-54538-unused-parens-lint.rs:67:9
| |
LL | (e @ &(1...2)) => {} LL | (e @ &(1...2)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses | ^^^^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:70:10 --> $DIR/issue-54538-unused-parens-lint.rs:68:10
| |
LL | &(_) => {} LL | &(_) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:81:9 --> $DIR/issue-54538-unused-parens-lint.rs:79:9
| |
LL | (_) => {} LL | (_) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:82:9 --> $DIR/issue-54538-unused-parens-lint.rs:80:9
| |
LL | (y) => {} LL | (y) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:83:9 --> $DIR/issue-54538-unused-parens-lint.rs:81:9
| |
LL | (ref r) => {} LL | (ref r) => {}
| ^^^^^^^ help: remove these parentheses | ^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:84:9 --> $DIR/issue-54538-unused-parens-lint.rs:82:9
| |
LL | (e @ 1..=2) => {} LL | (e @ 1..=2) => {}
| ^^^^^^^^^^^ help: remove these parentheses | ^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:90:9 --> $DIR/issue-54538-unused-parens-lint.rs:88:9
| |
LL | (e @ &(1..=2)) => {} LL | (e @ &(1..=2)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses | ^^^^^^^^^^^^^^ help: remove these parentheses
error: unnecessary parentheses around pattern error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:91:10 --> $DIR/issue-54538-unused-parens-lint.rs:89:10
| |
LL | &(_) => {} LL | &(_) => {}
| ^^^ help: remove these parentheses | ^^^ help: remove these parentheses
error: aborting due to 26 previous errors error: aborting due to 24 previous errors
For more information about this error, try `rustc --explain E0416`.