error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:10:16
   |
LL |         () if (let 0 = 1) => {}
   |                ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:14:18
   |
LL |         () if (((let 0 = 1))) => {}
   |                  ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:26:16
   |
LL |         () if (let 0 = 1) && true => {}
   |                ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:30:24
   |
LL |         () if true && (let 0 = 1) => {}
   |                        ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:34:16
   |
LL |         () if (let 0 = 1) && (let 0 = 1) => {}
   |                ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:34:31
   |
LL |         () if (let 0 = 1) && (let 0 = 1) => {}
   |                               ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:40:42
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                          ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:40:55
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                                       ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:40:68
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                                                    ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:68:16
   |
LL |     use_expr!((let 0 = 1 && 0 == 0));
   |                ^^^

error: expected expression, found `let` statement
  --> $DIR/feature-gate.rs:71:16
   |
LL |     use_expr!((let 0 = 1));
   |                ^^^

error: no rules expected the token `let`
  --> $DIR/feature-gate.rs:80:15
   |
LL |     macro_rules! use_expr {
   |     --------------------- when calling this macro
...
LL |     use_expr!(let 0 = 1);
   |               ^^^ no rules expected this token in macro call
   |
note: while trying to match meta-variable `$e:expr`
  --> $DIR/feature-gate.rs:61:10
   |
LL |         ($e:expr) => {
   |          ^^^^^^^

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:7:12
   |
LL |         () if let 0 = 1 => {}
   |            ^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:18:12
   |
LL |         () if true && let 0 = 1 => {}
   |            ^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:22:12
   |
LL |         () if let 0 = 1 && true => {}
   |            ^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:40:12
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:51:12
   |
LL |         () if let Range { start: _, end: _ } = (true..true) && false => {}
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `if let` guards are experimental
  --> $DIR/feature-gate.rs:76:12
   |
LL |         () if let 0 = 1 => {}
   |            ^^^^^^^^^^^^
   |
   = note: see issue #51114 <https://github.com/rust-lang/rust/issues/51114> for more information
   = help: add `#![feature(if_let_guard)]` to the crate attributes to enable
   = help: you can write `if matches!(<expr>, <pattern>)` instead of `if let <pattern> = <expr>`

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:10:16
   |
LL |         () if (let 0 = 1) => {}
   |                ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:14:18
   |
LL |         () if (((let 0 = 1))) => {}
   |                  ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:18:23
   |
LL |         () if true && let 0 = 1 => {}
   |                       ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:22:15
   |
LL |         () if let 0 = 1 && true => {}
   |               ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:26:16
   |
LL |         () if (let 0 = 1) && true => {}
   |                ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:30:24
   |
LL |         () if true && (let 0 = 1) => {}
   |                        ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:34:16
   |
LL |         () if (let 0 = 1) && (let 0 = 1) => {}
   |                ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:34:31
   |
LL |         () if (let 0 = 1) && (let 0 = 1) => {}
   |                               ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:40:15
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |               ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:40:28
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                            ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:40:42
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                          ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:40:55
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                                       ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:40:68
   |
LL |         () if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) => {}
   |                                                                    ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:51:15
   |
LL |         () if let Range { start: _, end: _ } = (true..true) && false => {}
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:68:16
   |
LL |     use_expr!((let 0 = 1 && 0 == 0));
   |                ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error[E0658]: `let` expressions in this position are unstable
  --> $DIR/feature-gate.rs:71:16
   |
LL |     use_expr!((let 0 = 1));
   |                ^^^^^^^^^
   |
   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
   = help: add `#![feature(let_chains)]` to the crate attributes to enable

error: aborting due to 34 previous errors

For more information about this error, try `rustc --explain E0658`.
