/ tests / expectations / compiler / array / array_write.out
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;