/ tests / tests / compiler / array / empty_arrays.adl
empty_arrays.adl
 1  program empty_arrays.alpha {
 2      transition main(a: [u32; 0], c: [u32; 0]) ->  ([u32;0], u32, [u64;0], u64) {
 3          let val: [u32;0u64] = [];
 4          let val_64: [u64;0] = [];
 5          val = id(val);
 6          return (foo(0, val), sum::[0](val), val_64, sum_64::[0](val_64));
 7      }
 8  
 9      function foo(a: u32, b:[u32; 0]) -> [u32;0] {
10          let c = b;
11          let d = c;
12          return d;
13      }
14  
15      inline id(a: [u32;0]) -> [u32;0] {
16          return a;
17      } 
18  
19      inline sum::[N: u32](arr: [u32; N]) -> u32 {
20          let total = 0u32;
21          for i in 0u32..N {
22              total += arr[i];
23          }
24          return total;
25      }
26      inline sum_64::[N: u64](arr: [u64; N]) -> u64 {
27          let total = 0u64;
28          for i in 0u64..N {
29              total += arr[i];
30          }
31          return total;
32      }
33  }