// Test that immutable pattern bindings cannot be reassigned. | |
enum E { | |
Foo(isize) | |
} | |
struct S { | |
bar: isize, | |
} | |
pub fn main() { | |
match 1 { | |
x => { | |
x += 1; //~ ERROR [E0384] | |
} | |
} | |
match E::Foo(1) { | |
E::Foo(x) => { | |
x += 1; //~ ERROR [E0384] | |
} | |
} | |
match (S { bar: 1 }) { | |
S { bar: x } => { | |
x += 1; //~ ERROR [E0384] | |
} | |
} | |
match (1,) { | |
(x,) => { | |
x += 1; //~ ERROR [E0384] | |
} | |
} | |
match [1,2,3] { | |
[x,_,_] => { | |
x += 1; //~ ERROR [E0384] | |
} | |
} | |
} |