warning: the feature `or_patterns` is incomplete and may cause the compiler to crash
  --> $DIR/issue-54538-unused-parens-lint.rs:3:12
   |
LL | #![feature(or_patterns)]
   |            ^^^^^^^^^^^
   |
   = note: `#[warn(incomplete_features)]` on by default

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:12:9
   |
LL |     let (a) = 0;
   |         ^^^ help: remove these parentheses
   |
note: lint level defined here
  --> $DIR/issue-54538-unused-parens-lint.rs:9:9
   |
LL | #![deny(unused_parens)]
   |         ^^^^^^^^^^^^^

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:13:9
   |
LL |     for (a) in 0..1 {}
   |         ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:14:12
   |
LL |     if let (a) = 0 {}
   |            ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:15:15
   |
LL |     while let (a) = 0 {}
   |               ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:16:12
   |
LL |     fn foo((a): u8) {}
   |            ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:17:14
   |
LL |     let _ = |(a): u8| 0;
   |              ^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:45:12
   |
LL |     if let (0 | 1) = 0 {}
   |            ^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:46:13
   |
LL |     if let ((0 | 1),) = (0,) {}
   |             ^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:47:13
   |
LL |     if let [(0 | 1)] = [0] {}
   |             ^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:48:16
   |
LL |     if let 0 | (1 | 2) = 0 {}
   |                ^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:50: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:52: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:62:9
   |
LL |         (_) => {}
   |         ^^^ help: remove these parentheses

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

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

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:65:9
   |
LL |         (e @ 1...2) => {}
   |         ^^^^^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:71:9
   |
LL |         (e @ &(1...2)) => {}
   |         ^^^^^^^^^^^^^^ help: remove these parentheses

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

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

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

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

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:86:9
   |
LL |         (e @ 1..=2) => {}
   |         ^^^^^^^^^^^ help: remove these parentheses

error: unnecessary parentheses around pattern
  --> $DIR/issue-54538-unused-parens-lint.rs:92:9
   |
LL |         (e @ &(1..=2)) => {}
   |         ^^^^^^^^^^^^^^ help: remove these parentheses

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

error: aborting due to 24 previous errors

