| //@ compile-flags: -g |
| //@ ignore-android: FIXME(#10381) |
| |
| // === GDB TESTS ============================================================== |
| |
| // gdb-command: r |
| |
| // gdb-command: s |
| // gdb-check:[...]match x { |
| |
| // gdb-command: s |
| // gdb-check:[...] Some(42) => 1, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_enum(Some(12)); |
| |
| // gdb-command: s |
| // gdb-check:[...]match x { |
| |
| // gdb-command: s |
| // gdb-check:[...]Some(_) => 2, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_enum(None); |
| |
| // gdb-command: s |
| // gdb-check:[...]match x { |
| |
| // gdb-command: s |
| // gdb-check:[...]None => 3, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_int(1); |
| |
| // gdb-command: s |
| // gdb-check:[...]match y { |
| |
| // gdb-command: s |
| // gdb-check:[...]1 => 3, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_int(2); |
| |
| // gdb-command: s |
| // gdb-check:[...]match y { |
| |
| // gdb-command: s |
| // gdb-check:[...]_ => 4, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_int(0); |
| |
| // gdb-command: s |
| // gdb-check:[...]match y { |
| |
| // gdb-command: s |
| // gdb-check:[...]0 => 2, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_int(-1); |
| |
| // gdb-command: s |
| // gdb-check:[...]match y { |
| |
| // gdb-command: s |
| // gdb-check:[...]-1 => 1, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_tuple(5, 12); |
| |
| // gdb-command: s |
| // gdb-check:[...]match (a, b) { |
| |
| // gdb-command: s |
| // gdb-check:[...](5, 12) => 3, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_tuple(29, 1); |
| |
| // gdb-command: s |
| // gdb-check:[...]match (a, b) { |
| |
| // gdb-command: s |
| // gdb-check:[...](29, _) => 2, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_tuple(12, 12); |
| |
| // gdb-command: s |
| // gdb-check:[...]match (a, b) { |
| |
| // gdb-command: s |
| // gdb-check:[...](_, _) => 5 |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_tuple(42, 12); |
| |
| // gdb-command: s |
| // gdb-check:[...]match (a, b) { |
| |
| // gdb-command: s |
| // gdb-check:[...](42, 12) => 1, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]match_tuple(1, 9); |
| |
| // gdb-command: s |
| // gdb-check:[...]match (a, b) { |
| |
| // gdb-command: s |
| // gdb-check:[...](_, 9) => 4, |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // gdb-command: s |
| // gdb-check:[...]} |
| |
| // === CDB TESTS ============================================================== |
| |
| // Enable line-based debugging and print lines after stepping. |
| // cdb-command: .lines -e |
| // cdb-command: l+s |
| // cdb-command: l+t |
| |
| // cdb-command: g |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match x { |
| |
| // cdb-command: t |
| // cdb-check: [...]: Some(42) => 1, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_enum(Some(12)); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match x { |
| |
| // cdb-command: t |
| // cdb-check: [...]: Some(_) => 2, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_enum(None); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_enum(x: Option<u32>) -> u8 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match x { |
| |
| // cdb-command: t |
| // cdb-check: [...]: None => 3, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_int(1); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_int(y: i32) -> u16 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match y { |
| |
| // cdb-command: t |
| // cdb-check: [...]: 1 => 3, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_int(2); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_int(y: i32) -> u16 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match y { |
| |
| // cdb-command: t |
| // cdb-check: [...]: _ => 4, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_int(0); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_int(y: i32) -> u16 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match y { |
| |
| // cdb-command: t |
| // cdb-check: [...]: 0 => 2, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_int(-1); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_int(y: i32) -> u16 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match y { |
| |
| // cdb-command: t |
| // cdb-check: [...]: -1 => 1, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_tuple(5, 12); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match (a, b) { |
| |
| // cdb-command: t |
| // cdb-check: [...]: (5, 12) => 3, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_tuple(29, 1); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match (a, b) { |
| |
| // cdb-command: t |
| // cdb-check: [...]: (29, _) => 2, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_tuple(12, 12); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match (a, b) { |
| |
| // cdb-command: t |
| // cdb-check: [...]: (_, _) => 5 |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_tuple(42, 12); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match (a, b) { |
| |
| // cdb-command: t |
| // cdb-check: [...]: (42, 12) => 1, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: match_tuple(1, 9); |
| |
| // cdb-command: t |
| // cdb-check: [...]: fn match_tuple(a: u8, b: i8) -> u32 { |
| |
| // cdb-command: t |
| // cdb-check: [...]: match (a, b) { |
| |
| // cdb-command: t |
| // cdb-check: [...]: (_, 9) => 4, |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| // cdb-command: t |
| // cdb-check: [...]: } |
| |
| fn main() { |
| match_enum(Some(42)); // #break |
| match_enum(Some(12)); |
| match_enum(None); |
| |
| match_int(1); |
| match_int(2); |
| match_int(0); |
| match_int(-1); |
| |
| match_tuple(5, 12); |
| match_tuple(29, 1); |
| match_tuple(12, 12); |
| match_tuple(42, 12); |
| match_tuple(1, 9); |
| } |
| |
| fn match_enum(x: Option<u32>) -> u8 { |
| match x { |
| Some(42) => 1, |
| Some(_) => 2, |
| None => 3, |
| } |
| } |
| |
| fn match_int(y: i32) -> u16 { |
| match y { |
| -1 => 1, |
| 0 => 2, |
| 1 => 3, |
| _ => 4, |
| } |
| } |
| |
| fn match_tuple(a: u8, b: i8) -> u32 { |
| match (a, b) { |
| (42, 12) => 1, |
| (29, _) => 2, |
| (5, 12) => 3, |
| (_, 9) => 4, |
| (_, _) => 5 |
| } |
| } |