| // We used to not lower the extra `b @ ..` into `b @ _` which meant that no type | |
| // was registered for the binding `b` although it passed through resolve. | |
| // This resulted in an ICE (#69103). | |
| fn main() { | |
| let [a @ .., b @ ..] = &mut [1, 2]; | |
| //~^ ERROR `..` can only be used once per slice pattern | |
| b; | |
| let [.., c @ ..] = [1, 2]; | |
| //~^ ERROR `..` can only be used once per slice pattern | |
| c; | |
| // This never ICEd, but let's make sure it won't regress either. | |
| let (.., d @ ..) = (1, 2); | |
| //~^ ERROR `..` patterns are not allowed here | |
| d; | |
| } |