summaryrefslogtreecommitdiffstats
path: root/tests/ui/array-slice-vec/issue-69103-extra-binding-subslice.rs
blob: 061b0d675b31f2c98c0e1864de6edaf6c54ddb11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 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;
}