array_write.out
1 program test.alpha; 2 3 record R: 4 owner as address.private; 5 x as u8.private; 6 7 struct S: 8 x as u8; 9 y as u32; 10 11 struct T: 12 x as u8; 13 y as [S; 3u32]; 14 z as S; 15 16 function simple_struct: 17 input r0 as S.private; 18 add r0.y 2u32 into r1; 19 cast 1u8 r1 into r2 as S; 20 output r2 as S.private; 21 22 function nested: 23 input r0 as [[[boolean; 2u32]; 2u32]; 2u32].private; 24 cast true false into r1 as [boolean; 2u32]; 25 cast true r0[0u32][0u32][1u32] into r2 as [boolean; 2u32]; 26 cast r2 r0[0u32][1u32] into r3 as [[boolean; 2u32]; 2u32]; 27 cast r0[1u32][0u32] r1 into r4 as [[boolean; 2u32]; 2u32]; 28 cast r3 r4 into r5 as [[[boolean; 2u32]; 2u32]; 2u32]; 29 output r5 as [[[boolean; 2u32]; 2u32]; 2u32].private; 30 31 function nested2: 32 input r0 as S.private; 33 input r1 as T.private; 34 add r0.y 1u32 into r2; 35 cast r0.x r2 into r3 as S; 36 cast r0.x r2 into r4 as S; 37 cast r0.x r2 into r5 as S; 38 cast 1u8 r1.y[0u32].y into r6 as S; 39 cast r6 r4 r1.y[2u32] into r7 as [S; 3u32]; 40 cast r1.x r7 r3 into r8 as T; 41 output r5 as S.private; 42 output r8 as T.private; 43 44 function with_tuples: 45 input r0 as S.private; 46 input r1 as T.private; 47 cast 1u8 r0.y into r2 as S; 48 cast r1.y[0u32] r0 r1.y[2u32] into r3 as [S; 3u32]; 49 cast r1.x r3 r1.z into r4 as T; 50 output r2 as S.private; 51 output r4 as T.private; 52 53 function in_conditional: 54 input r0 as T.private; 55 input r1 as boolean.private; 56 cast 2u8 3u32 into r2 as S; 57 ternary r1 1u8 r0.x into r3; 58 ternary r1 r0.z.x r2.x into r4; 59 ternary r1 r0.z.y r2.y into r5; 60 cast r4 r5 into r6 as S; 61 cast r3 r0.y r6 into r7 as T; 62 output r7 as T.private; 63 64 function f_record: 65 async f_record 1u8 into r0; 66 cast self.signer 1u8 into r1 as R.record; 67 cast r1.owner 2u8 into r2 as R.record; 68 output r2 as R.record; 69 output r0 as test.alpha/f_record.future; 70 71 finalize f_record: 72 input r0 as u8.public; 73 assert.eq r0 r0; 74 75 function in_loops: 76 input r0 as [u8; 8u32].private; 77 lt r0[0u32] r0[1u32] into r1; 78 ternary r1 r0[1u32] r0[0u32] into r2; 79 ternary r1 r0[0u32] r0[1u32] into r3; 80 lt r3 r0[2u32] into r4; 81 ternary r4 r0[2u32] r3 into r5; 82 ternary r4 r3 r0[2u32] into r6; 83 lt r6 r0[3u32] into r7; 84 ternary r7 r0[3u32] r6 into r8; 85 ternary r7 r6 r0[3u32] into r9; 86 lt r9 r0[4u32] into r10; 87 ternary r10 r0[4u32] r9 into r11; 88 ternary r10 r9 r0[4u32] into r12; 89 lt r12 r0[5u32] into r13; 90 ternary r13 r0[5u32] r12 into r14; 91 ternary r13 r12 r0[5u32] into r15; 92 lt r15 r0[6u32] into r16; 93 ternary r16 r0[6u32] r15 into r17; 94 ternary r16 r15 r0[6u32] into r18; 95 lt r18 r0[7u32] into r19; 96 ternary r19 r0[7u32] r18 into r20; 97 ternary r19 r18 r0[7u32] into r21; 98 lt r2 r5 into r22; 99 ternary r22 r5 r2 into r23; 100 ternary r22 r2 r5 into r24; 101 lt r24 r8 into r25; 102 ternary r25 r8 r24 into r26; 103 ternary r25 r24 r8 into r27; 104 lt r27 r11 into r28; 105 ternary r28 r11 r27 into r29; 106 ternary r28 r27 r11 into r30; 107 lt r30 r14 into r31; 108 ternary r31 r14 r30 into r32; 109 ternary r31 r30 r14 into r33; 110 lt r33 r17 into r34; 111 ternary r34 r17 r33 into r35; 112 ternary r34 r33 r17 into r36; 113 lt r36 r20 into r37; 114 ternary r37 r20 r36 into r38; 115 ternary r37 r36 r20 into r39; 116 lt r23 r26 into r40; 117 ternary r40 r26 r23 into r41; 118 ternary r40 r23 r26 into r42; 119 lt r42 r29 into r43; 120 ternary r43 r29 r42 into r44; 121 ternary r43 r42 r29 into r45; 122 lt r45 r32 into r46; 123 ternary r46 r32 r45 into r47; 124 ternary r46 r45 r32 into r48; 125 lt r48 r35 into r49; 126 ternary r49 r35 r48 into r50; 127 ternary r49 r48 r35 into r51; 128 lt r51 r38 into r52; 129 ternary r52 r38 r51 into r53; 130 ternary r52 r51 r38 into r54; 131 lt r41 r44 into r55; 132 ternary r55 r44 r41 into r56; 133 ternary r55 r41 r44 into r57; 134 lt r57 r47 into r58; 135 ternary r58 r47 r57 into r59; 136 ternary r58 r57 r47 into r60; 137 lt r60 r50 into r61; 138 ternary r61 r50 r60 into r62; 139 ternary r61 r60 r50 into r63; 140 lt r63 r53 into r64; 141 ternary r64 r53 r63 into r65; 142 ternary r64 r63 r53 into r66; 143 lt r56 r59 into r67; 144 ternary r67 r59 r56 into r68; 145 ternary r67 r56 r59 into r69; 146 lt r69 r62 into r70; 147 ternary r70 r62 r69 into r71; 148 ternary r70 r69 r62 into r72; 149 lt r72 r65 into r73; 150 ternary r73 r65 r72 into r74; 151 ternary r73 r72 r65 into r75; 152 lt r68 r71 into r76; 153 ternary r76 r71 r68 into r77; 154 ternary r76 r68 r71 into r78; 155 lt r78 r74 into r79; 156 ternary r79 r74 r78 into r80; 157 ternary r79 r78 r74 into r81; 158 lt r77 r80 into r82; 159 ternary r82 r80 r77 into r83; 160 ternary r82 r77 r80 into r84; 161 cast r83 r84 r81 r75 r66 r54 r39 r21 into r85 as [u8; 8u32]; 162 output r85 as [u8; 8u32].private;