/ tests / tests / compiler / type_inference / futures_fail.adl
futures_fail.adl
 1  program child.alpha {
 2      async transition foo() -> Future {
 3          return foo_();
 4      }
 5  
 6      async function foo_() {}
 7  
 8      async transition bar() -> Future {
 9          return bar_();
10      }
11  
12      async function bar_() {}
13  }
14  
15  // --- Next Program --- //
16  
17  import child.alpha;
18  
19  program type_inference.alpha {
20      async transition t1() -> (u64, Future) {
21          let f: u32 = child.alpha/foo();
22          let r: u8 = foo(f);
23          return (42u64, r);
24      }
25  
26      async transition t2() -> (u64, Future) {
27          let f: (u8, u8) = child.alpha/bar();
28          let r: bool = foo(f);
29          return (99u64, r);
30      }
31  
32      async function foo(fut: Future) {
33          fut.await();
34      }
35  }