/ tests / tests / compiler / async_blocks / too_many_captures_fail.adl
too_many_captures_fail.adl
 1  program test.alpha {
 2      async transition main(x: u32) -> Future {
 3          let a0 = 0u32;
 4          let a1 = 0u32;
 5          let a2 = 0u32;
 6          let a3 = 0u32;
 7          let a4 = 0u32;
 8          let a5 = 0u32;
 9          let a6 = 0u32;
10          let a7 = 0u32;
11          let a8 = 0u32;
12          let a9 = 0u32;
13          let b0 = 0u32;
14          let b1 = 0u32;
15          let b2 = 0u32;
16          let b3 = 0u32;
17          let b4 = 0u32;
18          let b5 = 0u32;
19          let b6 = 0u32;
20          let b7 = 0u32;
21          let b8 = 0u32;
22          let b9 = 0u32;
23  
24          // More captures than allowed in the VM
25          let f = async {
26              assert(a0 == 0);
27              assert(a1 == 0);
28              assert(a2 == 0);
29              assert(a3 == 0);
30              assert(a4 == 0);
31              assert(a5 == 0);
32              assert(a6 == 0);
33              assert(a7 == 0);
34              assert(a8 == 0);
35              assert(a9 == 0);
36              assert(b0 == 0);
37              assert(b1 == 0);
38              assert(b2 == 0);
39              assert(b3 == 0);
40              assert(b4 == 0);
41              assert(b5 == 0);
42              assert(b6 == 0);
43              assert(b7 == 0);
44              assert(b8 == 0);
45              assert(b9 == 0);
46          };
47          return f;
48      }
49  }