Skip to content

Commit

Permalink
or-patterns: fix fallout from #664128.
Browse files Browse the repository at this point in the history
  • Loading branch information
Centril committed Sep 5, 2019
1 parent 0341b78 commit 16ba502
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 41 deletions.
10 changes: 3 additions & 7 deletions src/librustc_lint/unused.rs
Expand Up @@ -493,10 +493,8 @@ impl EarlyLintPass for UnusedParens {
fn check_expr(&mut self, cx: &EarlyContext<'_>, e: &ast::Expr) {
use syntax::ast::ExprKind::*;
let (value, msg, followed_by_block, left_pos, right_pos) = match e.node {
Let(ref pats, ..) => {
for p in pats {
self.check_unused_parens_pat(cx, p, false, false);
}
Let(ref pat, ..) => {
self.check_unused_parens_pat(cx, pat, false, false);
return;
}

Expand Down Expand Up @@ -594,9 +592,7 @@ impl EarlyLintPass for UnusedParens {
}

fn check_arm(&mut self, cx: &EarlyContext<'_>, arm: &ast::Arm) {
for p in &arm.pats {
self.check_unused_parens_pat(cx, p, false, false);
}
self.check_unused_parens_pat(cx, &arm.pat, false, false);
}
}

Expand Down
2 changes: 0 additions & 2 deletions src/test/ui/lint/issue-54538-unused-parens-lint.rs
Expand Up @@ -33,10 +33,8 @@ fn or_patterns_no_lint() {
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.
//~^ 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.
//~^ ERROR identifier `a` is bound more than once
}

fn or_patterns_will_lint() {
Expand Down
51 changes: 19 additions & 32 deletions src/test/ui/lint/issue-54538-unused-parens-lint.stderr
@@ -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
--> $DIR/issue-54538-unused-parens-lint.rs:3:12
|
Expand Down Expand Up @@ -61,113 +49,112 @@ LL | let _ = |(a): u8| 0;
| ^^^ help: remove these parentheses

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 {}
| ^^^^^^^ help: remove these parentheses

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,) {}
| ^^^^^^^ help: remove these parentheses

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] {}
| ^^^^^^^ help: remove these parentheses

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 {}
| ^^^^^^^ help: remove these parentheses

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) {}
| ^^^^^^^ help: remove these parentheses

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 }) {}
| ^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:60:9
--> $DIR/issue-54538-unused-parens-lint.rs:58:9
|
LL | (_) => {}
| ^^^ help: remove these parentheses

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) => {}
| ^^^ help: remove these parentheses

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) => {}
| ^^^^^^^ help: remove these parentheses

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) => {}
| ^^^^^^^^^^^ help: remove these parentheses

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)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:70:10
--> $DIR/issue-54538-unused-parens-lint.rs:68:10
|
LL | &(_) => {}
| ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:81:9
--> $DIR/issue-54538-unused-parens-lint.rs:79:9
|
LL | (_) => {}
| ^^^ help: remove these parentheses

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) => {}
| ^^^ help: remove these parentheses

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) => {}
| ^^^^^^^ help: remove these parentheses

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) => {}
| ^^^^^^^^^^^ help: remove these parentheses

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)) => {}
| ^^^^^^^^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
--> $DIR/issue-54538-unused-parens-lint.rs:91:10
--> $DIR/issue-54538-unused-parens-lint.rs:89:10
|
LL | &(_) => {}
| ^^^ 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`.

0 comments on commit 16ba502

Please sign in to comment.