/ tests / tests / compiler / futures / async_function_called_twice.adl
async_function_called_twice.adl
 1  program dependent.alpha {
 2      async function finalize(x: u8) {
 3          assert_eq(1u8, 1u8);
 4      }
 5  
 6      async transition t1() -> Future {
 7          let f: Future = finalize(1u8);
 8          return f;
 9      }
10  
11      async transition t2() -> Future {
12          let f: Future = finalize(1u8);
13          return f;
14      }
15  }
16  
17  // --- Next Program --- //
18  
19  import dependent.alpha;
20  
21  program test.alpha {
22      async function finalize(f: Future) {
23          let x: u8 = f.0;
24          f.await();
25      }
26  
27      async transition t1() -> Future {
28          let f: Future = dependent.alpha/t1();
29          return finalize(f);
30      }
31  
32      async transition t2() -> Future {
33          let f: Future = dependent.alpha/t2();
34          return finalize(f);
35      }
36  }