/ tests / tests / compiler / structs / shadow_external_struct_fail.adl
shadow_external_struct_fail.adl
 1  
 2  program child.alpha {
 3      struct Foo {
 4          bar: [Bar; 1],
 5      }
 6  
 7      struct Bar {
 8          baz: [Baz; 2],
 9      }
10  
11      struct Baz {
12          one: One,
13      }
14  
15      struct One {
16          two: [Two; 2],
17      }
18  
19      struct Two {
20          val1: u32,
21          val2: u32,
22      }
23  
24      transition create() -> Foo {
25          return Foo {bar: [Bar {baz: [Baz {one: One {two: [Two {val1: 1u32, val2: 2u32}, Two {val1: 3u32, val2: 4u32}]}}, Baz {one: One {two: [Two {val1: 5u32, val2: 6u32}, Two {val1: 7u32, val2: 8u32}]}}]}]};
26      }
27  }
28  
29  // --- Next Program --- //
30  
31  import child.alpha;
32  program parent.alpha {
33      struct Foo {
34          bar: [Bar; 1],
35      }
36  
37      struct Bar {
38          baz: [Baz; 2],
39          bog: u32,
40      }
41  
42      struct Baz {
43          one: One,
44      }
45  
46      struct One {
47          two: [Two; 2],
48      }
49  
50      struct Two {
51          val1: u32,
52          val2: u32,
53      }
54  
55      transition create_wrapper() -> Foo {
56          return child.alpha/create();
57      }
58  }