| // MIR for `complicated_match` after ElaborateDrops |
| |
| fn complicated_match(_1: bool, _2: (bool, bool, std::string::String)) -> i32 { |
| debug cond => _1; // in scope 0 at $DIR/match-arm-scopes.rs:14:22: 14:26 |
| debug items => _2; // in scope 0 at $DIR/match-arm-scopes.rs:14:34: 14:39 |
| let mut _0: i32; // return place in scope 0 at $DIR/match-arm-scopes.rs:14:66: 14:69 |
| let mut _3: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16 |
| let mut _4: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:15:11: 15:16 |
| let _5: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| let _6: &bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| let _7: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| let _8: &std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| let mut _9: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| let mut _10: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| let mut _11: !; // in scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60 |
| let mut _12: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| let mut _13: bool; // in scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| let mut _14: !; // in scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60 |
| let _15: bool; // in scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17 |
| let _16: std::string::String; // in scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20 |
| scope 1 { |
| debug a => _5; // in scope 1 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| debug a => _6; // in scope 1 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| debug s => _7; // in scope 1 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| debug s => _8; // in scope 1 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| } |
| scope 2 { |
| debug b => _15; // in scope 2 at $DIR/match-arm-scopes.rs:17:16: 17:17 |
| debug t => _16; // in scope 2 at $DIR/match-arm-scopes.rs:17:19: 17:20 |
| } |
| |
| bb0: { |
| switchInt((_2.0: bool)) -> [false: bb6, otherwise: bb2]; // scope 0 at $DIR/match-arm-scopes.rs:16:10: 16:15 |
| } |
| |
| bb1 (cleanup): { |
| resume; // scope 0 at $DIR/match-arm-scopes.rs:14:1: 19:2 |
| } |
| |
| bb2: { |
| switchInt((_2.1: bool)) -> [false: bb14, otherwise: bb3]; // scope 0 at $DIR/match-arm-scopes.rs:16:29: 16:34 |
| } |
| |
| bb3: { |
| switchInt((_2.0: bool)) -> [false: bb4, otherwise: bb21]; // scope 0 at $DIR/match-arm-scopes.rs:17:10: 17:14 |
| } |
| |
| bb4: { |
| StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:32: 17:33 |
| _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:17:32: 17:33 |
| StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:35: 17:36 |
| _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:17:35: 17:36 |
| goto -> bb20; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb5: { |
| _0 = const 1_i32; // scope 1 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| // ty::Const |
| // + ty: i32 |
| // + val: Value(Scalar(0x00000001)) |
| // mir::Constant |
| // + span: $DIR/match-arm-scopes.rs:16:77: 16:78 |
| // + literal: Const { ty: i32, val: Value(Scalar(0x00000001)) } |
| drop(_7) -> [return: bb19, unwind: bb10]; // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| } |
| |
| bb6: { |
| StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| _6 = &(_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| StorageLive(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| StorageLive(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| _10 = _1; // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| switchInt(_10) -> [false: bb7, otherwise: bb8]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb7: { |
| _9 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:16:70: 16:71 |
| StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73 |
| switchInt(move _9) -> [false: bb13, otherwise: bb12]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb8: { |
| _0 = const 3_i32; // scope 0 at $DIR/match-arm-scopes.rs:16:59: 16:60 |
| // ty::Const |
| // + ty: i32 |
| // + val: Value(Scalar(0x00000003)) |
| // mir::Constant |
| // + span: $DIR/match-arm-scopes.rs:16:59: 16:60 |
| // + literal: Const { ty: i32, val: Value(Scalar(0x00000003)) } |
| StorageDead(_10); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73 |
| StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| goto -> bb11; // scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60 |
| } |
| |
| bb9: { |
| return; // scope 0 at $DIR/match-arm-scopes.rs:19:2: 19:2 |
| } |
| |
| bb10 (cleanup): { |
| goto -> bb25; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb11: { |
| drop(_2) -> [return: bb9, unwind: bb1]; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb12: { |
| StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| _5 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:17: 16:18 |
| StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:20: 16:21 |
| goto -> bb5; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb13: { |
| StorageDead(_9); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| goto -> bb2; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb14: { |
| StorageLive(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27 |
| _6 = &(_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27 |
| StorageLive(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37 |
| _8 = &(_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37 |
| StorageLive(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| StorageLive(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| _13 = _1; // scope 0 at $DIR/match-arm-scopes.rs:16:45: 16:49 |
| switchInt(_13) -> [false: bb15, otherwise: bb16]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb15: { |
| _12 = (*_6); // scope 0 at $DIR/match-arm-scopes.rs:16:70: 16:71 |
| StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73 |
| switchInt(move _12) -> [false: bb18, otherwise: bb17]; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb16: { |
| _0 = const 3_i32; // scope 0 at $DIR/match-arm-scopes.rs:16:59: 16:60 |
| // ty::Const |
| // + ty: i32 |
| // + val: Value(Scalar(0x00000003)) |
| // mir::Constant |
| // + span: $DIR/match-arm-scopes.rs:16:59: 16:60 |
| // + literal: Const { ty: i32, val: Value(Scalar(0x00000003)) } |
| StorageDead(_13); // scope 0 at $DIR/match-arm-scopes.rs:16:72: 16:73 |
| StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| goto -> bb11; // scope 0 at $DIR/match-arm-scopes.rs:16:52: 16:60 |
| } |
| |
| bb17: { |
| StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageLive(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27 |
| _5 = (_2.0: bool); // scope 0 at $DIR/match-arm-scopes.rs:16:26: 16:27 |
| StorageLive(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37 |
| _7 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:16:36: 16:37 |
| goto -> bb5; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb18: { |
| StorageDead(_12); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| goto -> bb3; // scope 0 at $DIR/match-arm-scopes.rs:16:42: 16:73 |
| } |
| |
| bb19: { |
| StorageDead(_7); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_5); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_8); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| StorageDead(_6); // scope 0 at $DIR/match-arm-scopes.rs:16:77: 16:78 |
| goto -> bb23; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb20: { |
| _0 = const 2_i32; // scope 2 at $DIR/match-arm-scopes.rs:17:41: 17:42 |
| // ty::Const |
| // + ty: i32 |
| // + val: Value(Scalar(0x00000002)) |
| // mir::Constant |
| // + span: $DIR/match-arm-scopes.rs:17:41: 17:42 |
| // + literal: Const { ty: i32, val: Value(Scalar(0x00000002)) } |
| drop(_16) -> [return: bb22, unwind: bb10]; // scope 0 at $DIR/match-arm-scopes.rs:17:41: 17:42 |
| } |
| |
| bb21: { |
| StorageLive(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17 |
| _15 = (_2.1: bool); // scope 0 at $DIR/match-arm-scopes.rs:17:16: 17:17 |
| StorageLive(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20 |
| _16 = move (_2.2: std::string::String); // scope 0 at $DIR/match-arm-scopes.rs:17:19: 17:20 |
| goto -> bb20; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb22: { |
| StorageDead(_16); // scope 0 at $DIR/match-arm-scopes.rs:17:41: 17:42 |
| StorageDead(_15); // scope 0 at $DIR/match-arm-scopes.rs:17:41: 17:42 |
| goto -> bb23; // scope 0 at $DIR/match-arm-scopes.rs:15:5: 18:6 |
| } |
| |
| bb23: { |
| goto -> bb29; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb24 (cleanup): { |
| goto -> bb1; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb25 (cleanup): { |
| goto -> bb24; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb26: { |
| goto -> bb9; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb27 (cleanup): { |
| goto -> bb1; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb28 (cleanup): { |
| goto -> bb27; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| |
| bb29: { |
| goto -> bb26; // scope 0 at $DIR/match-arm-scopes.rs:19:1: 19:2 |
| } |
| } |