| // Regression test for <https://github.com/rust-lang/rust/issues/141844>. | |
| fn main() { | |
| // The following expression gets desugared into something like: | |
| // ``` | |
| // let (lhs,) = x; (let x = 1) = lhs; | |
| // ``` | |
| // This used to ICE since we haven't yet declared the type for `x` when | |
| // checking the first desugared statement, whose RHS resolved to `x` since | |
| // in the AST, the `let` expression was visited first. | |
| (let x = 1,) = x; | |
| //~^ ERROR expected expression, found `let` statement | |
| } |