| // Regression test for #87017. | 
 |  | 
 | //@ run-rustfix | 
 |  | 
 | fn main() { | 
 |     fn foo() -> Vec<i32> { vec![1, 2, 3] } | 
 |  | 
 |     if let [_, _, _] = foo() {} | 
 |     //~^ ERROR: expected an array or slice | 
 |     //~| HELP: consider slicing here | 
 |  | 
 |     if let [] = &foo() {} | 
 |     //~^ ERROR: expected an array or slice | 
 |     //~| HELP: consider slicing here | 
 |  | 
 |     if let [] = foo() {} | 
 |     //~^ ERROR: expected an array or slice | 
 |     //~| HELP: consider slicing here | 
 |  | 
 |     let v = vec![]; | 
 |     match &v { | 
 |     //~^ HELP: consider slicing here | 
 |         [5] => {} | 
 |         //~^ ERROR: expected an array or slice | 
 |         _ => {} | 
 |     } | 
 |  | 
 |     let [..] = vec![1, 2, 3]; | 
 |     //~^ ERROR: expected an array or slice | 
 |     //~| HELP: consider slicing here | 
 | } |