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 }