/ tests / tests / execution / repeat_in_loop.adl
repeat_in_loop.adl
 1  /*
 2  seed = 123456789
 3  min_height = 16
 4  
 5  [case]
 6  program = "test.alpha"
 7  function = "main"
 8  input = []
 9  */
10  
11  program test.alpha {
12      transition main() -> u32 {
13          return foo::[10]();
14      }
15  
16      inline foo::[P: u32]() -> u32 {
17          let sum = 0u32;
18          for i: u32 in 1..P {
19              let arr = [i; i];
20  
21              for j: u32 in 0..i {
22                  sum += arr[j];
23              }
24  
25              sum += bar::[i]([i; i]);
26          }
27          return sum;
28      }
29  
30      inline bar::[K: u32](arr: [u32; K]) -> u32 {
31          let sum = 0u32;
32          for j: u32 in 0..K {
33              sum += arr[j];
34          }
35          return sum;
36      }
37  
38      @custom
39      async constructor() {
40          assert_eq(self.edition, 0u16);
41      }
42  }