error: expected `,`, found `&`
  --> $DIR/issue-66706.rs:2:16
   |
LL |     [0; [|_: _ &_| ()].len()]
   |               -^ expected `,`
   |               |
   |               help: missing `,`

error: expected identifier, found reserved identifier `_`
  --> $DIR/issue-66706.rs:9:20
   |
LL |     [0; [|f @ &ref _| {} ; 0 ].len() ];
   |                    ^ expected identifier, found reserved identifier

error: expected `,`, found `&`
  --> $DIR/issue-66706.rs:14:17
   |
LL |     [0; [|&_: _ &_| {}; 0 ].len()]
   |                -^ expected `,`
   |                |
   |                help: missing `,`

error: expected identifier, found reserved identifier `_`
  --> $DIR/issue-66706.rs:20:26
   |
LL |     [0; match [|f @ &ref _| () ] {} ]
   |                          ^ expected identifier, found reserved identifier

error[E0282]: type annotations needed
  --> $DIR/issue-66706.rs:2:11
   |
LL |     [0; [|_: _ &_| ()].len()]
   |           ^ consider giving this closure parameter a type

error[E0308]: mismatched types
  --> $DIR/issue-66706.rs:2:5
   |
LL | fn a() {
   |        - help: try adding a return type: `-> [{integer}; _]`
LL |     [0; [|_: _ &_| ()].len()]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found array `[{integer}; _]`

error[E0308]: mismatched types
  --> $DIR/issue-66706.rs:14:5
   |
LL | fn c() {
   |        - help: try adding a return type: `-> [{integer}; _]`
LL |     [0; [|&_: _ &_| {}; 0 ].len()]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found array `[{integer}; _]`

error[E0308]: mismatched types
  --> $DIR/issue-66706.rs:20:5
   |
LL | fn d() {
   |        - help: try adding a return type: `-> [{integer}; _]`
LL |     [0; match [|f @ &ref _| () ] {} ]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `()`, found array `[{integer}; _]`

error: aborting due to 8 previous errors

Some errors have detailed explanations: E0282, E0308.
For more information about an error, try `rustc --explain E0282`.
