2014-02-23 17:02:27 -06:00
|
|
|
// Test that immutable pattern bindings cannot be reassigned.
|
|
|
|
|
|
|
|
enum E {
|
2015-01-08 04:54:35 -06:00
|
|
|
Foo(isize)
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
struct S {
|
2015-01-08 04:54:35 -06:00
|
|
|
bar: isize,
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn main() {
|
2015-01-31 10:23:42 -06:00
|
|
|
match 1 {
|
2014-02-23 17:02:27 -06:00
|
|
|
x => {
|
2019-04-22 02:40:08 -05:00
|
|
|
x += 1; //~ ERROR [E0384]
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-11-06 02:05:53 -06:00
|
|
|
match E::Foo(1) {
|
|
|
|
E::Foo(x) => {
|
2019-04-22 02:40:08 -05:00
|
|
|
x += 1; //~ ERROR [E0384]
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-13 21:09:12 -05:00
|
|
|
match (S { bar: 1 }) {
|
2014-02-23 17:02:27 -06:00
|
|
|
S { bar: x } => {
|
2019-04-22 02:40:08 -05:00
|
|
|
x += 1; //~ ERROR [E0384]
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-31 10:23:42 -06:00
|
|
|
match (1,) {
|
2014-02-23 17:02:27 -06:00
|
|
|
(x,) => {
|
2019-04-22 02:40:08 -05:00
|
|
|
x += 1; //~ ERROR [E0384]
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-01-31 10:23:42 -06:00
|
|
|
match [1,2,3] {
|
2014-02-23 17:02:27 -06:00
|
|
|
[x,_,_] => {
|
2019-04-22 02:40:08 -05:00
|
|
|
x += 1; //~ ERROR [E0384]
|
2014-02-23 17:02:27 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|