mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
41 lines
615 B
Rust
41 lines
615 B
Rust
// 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]
|
|
}
|
|
}
|
|
}
|