/ tests / tests / compiler / async_blocks / bad_assign_in_async_block_fail.adl
bad_assign_in_async_block_fail.adl
 1  program test.alpha {
 2      struct Foo { x: u32, y: u32 }
 3  
 4      async transition foo(p: u32, q: u8) -> Future {
 5          let y = (1u32, 2u8, 3u16);
 6          let a = [1u32, 2u32];
 7          let x = 0u32;
 8          let s = Foo { x: 9, y: 4 };
 9          let f = async {
10              // All of these are bad
11              y = (1u32, 2u8, 3u16);
12              y.0 = 1u32;
13              a = [1u32, 2u32];
14              a[0] = 3;
15              x = 2;
16              s.x = 99;
17  
18              {
19                  {
20                      y = (1u32, 2u8, 3u16);
21                      y.0 = 1u32;
22                      a = [1u32, 2u32];
23                      a[0] = 3;
24                      x = 2;
25                      s.x = 99;
26                  }
27              }
28          };
29          return f;
30      }
31  }
32