/ tests / tests / compiler / tuple / tuple_write.adl
tuple_write.adl
 1  
 2  program test.alpha {
 3      transition baz(foo: u8, bar: u8) -> u8 {
 4          let a: (u8, u8) = (foo, bar);
 5          a.0 = a.0 + a.1;
 6          a.1 = 2u8;
 7          return a.0 + a.1;
 8      }
 9  
10      transition baz2(x: field, y: field) -> (field, field) {
11          let tupl: (field, field, u8) = (x, y, 1u8);
12  
13          tupl.0 = x + tupl.0;
14          tupl.1 = x + tupl.1;
15  
16          let tupl2: (field, field) = (tupl.1, tupl.0);
17  
18          return tupl2;
19      }
20  
21      transition baz3(x: field, y: field, z: bool) -> (field, field) {
22          let tupl: (field, field) = (x, y);
23          if z {
24              tupl.0 = tupl.0 + x;
25          } else {
26              tupl.1 = tupl.1 + y;
27          }
28  
29          return tupl;
30      }
31  
32      transition baz4(x: field, y: field, z: bool) -> (field, field) {
33          let tupl1: (field, field) = (x, y);
34          let tupl2: (field, field) = (y, x);
35          let result: (field, field) =  z ? tupl1 : tupl2;
36          return result;
37      }
38  }