2018-08-30 14:18:55 +02:00
|
|
|
//@ run-pass
|
2018-09-25 23:51:35 +02:00
|
|
|
#![allow(unused_mut)]
|
|
|
|
|
#![allow(unused_variables)]
|
2015-03-22 13:13:15 -07:00
|
|
|
|
2015-02-10 22:52:00 +01:00
|
|
|
#![feature(box_patterns)]
|
2015-01-19 11:58:01 -05:00
|
|
|
|
|
|
|
|
enum E {
|
|
|
|
|
StructVar { boxed: Box<i32> }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
|
|
|
|
|
// Test matching each shorthand notation for field patterns.
|
2022-07-07 04:36:10 +02:00
|
|
|
let mut a = E::StructVar { boxed: Box::new(3) };
|
2015-01-19 11:58:01 -05:00
|
|
|
match a {
|
|
|
|
|
E::StructVar { box boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { box ref boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { box mut boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { box ref mut boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { ref boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { ref mut boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { mut boxed } => { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Test matching non shorthand notation. Recreate a since last test
|
|
|
|
|
// moved `boxed`
|
2022-07-07 04:36:10 +02:00
|
|
|
let mut a = E::StructVar { boxed: Box::new(3) };
|
2015-01-19 11:58:01 -05:00
|
|
|
match a {
|
|
|
|
|
E::StructVar { boxed: box ref mut num } => { }
|
|
|
|
|
}
|
|
|
|
|
match a {
|
|
|
|
|
E::StructVar { boxed: ref mut num } => { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|