flatten_inlined_tuples_of_structs.adl
1 2 program test.alpha { 3 struct Extra { 4 c: u8, 5 } 6 7 struct Data { 8 a: u8, 9 b: u8, 10 c: Extra, 11 } 12 13 inline foo(a: u8, b: u8) -> (u8, u8, Data) { 14 let extra: Extra = Extra { c: a }; 15 let data: Data = Data { a: a, b: b, c: extra }; 16 if (a == b) { 17 return (a, b, data); 18 } 19 let c: u8 = a + b; 20 let d: u8 = a - b; 21 22 return (c, d, data); 23 } 24 25 transition bar(flag1: bool, flag2: bool, a: u8, b: u8) -> (u8, u8, Data) { 26 let start: (u8, u8, Data) = foo(a, b); 27 if flag1 { 28 start = foo(start.0, start.2.c.c); 29 } else { 30 31 if flag2 { 32 start = foo(start.1, start.2.b); 33 } else { 34 start = foo(start.2.a, start.1); 35 } 36 37 } 38 return start; 39 } 40 }