...
1-- in.cue --
2#T: {
3 config: _
4 body: _
5 mas: [string]: {
6 cfg: _
7 _link: #T
8 link: _link & {config: cfg}
9 }
10}
11
12#a: #T & {
13 config: a: int
14 body: config.a
15 mas: one: {
16 cfg: b: config.a
17 _link: {
18 config: b: int
19 body: config.b
20 mas: two: {
21 cfg: c: config.b
22 _link: {
23 config: c: int
24 body: config.c
25 }
26 }
27 }
28 }
29}
30
31a: #a & {config: a: 34}
32-- out/eval/stats --
33Leaks: 0
34Freed: 93
35Reused: 83
36Allocs: 10
37Retain: 0
38
39Unifications: 93
40Conjuncts: 264
41Disjuncts: 93
42-- out/eval --
43(struct){
44 #T: (#struct){
45 config: (_){ _ }
46 body: (_){ _ }
47 mas: (#struct){
48 }
49 }
50 #a: (#struct){
51 config: (#struct){
52 a: (int){ int }
53 }
54 body: (int){ int }
55 mas: (#struct){
56 one: (#struct){
57 cfg: (#struct){
58 b: (int){ int }
59 }
60 _link: (#struct){
61 config: (#struct){
62 b: (int){ int }
63 }
64 body: (int){ int }
65 mas: (#struct){
66 two: (#struct){
67 cfg: (#struct){
68 c: (int){ int }
69 }
70 _link: (#struct){
71 config: (#struct){
72 c: (int){ int }
73 }
74 body: (int){ int }
75 mas: (#struct){
76 }
77 }
78 link: (#struct){
79 config: (#struct){
80 c: (int){ int }
81 }
82 body: (int){ int }
83 mas: (#struct){
84 }
85 }
86 }
87 }
88 }
89 link: (#struct){
90 config: (#struct){
91 b: (int){ int }
92 }
93 body: (int){ int }
94 mas: (#struct){
95 two: (#struct){
96 cfg: (#struct){
97 c: (int){ int }
98 }
99 _link: (#struct){
100 config: (#struct){
101 c: (int){ int }
102 }
103 body: (int){ int }
104 mas: (#struct){
105 }
106 }
107 link: (#struct){
108 config: (#struct){
109 c: (int){ int }
110 }
111 body: (int){ int }
112 mas: (#struct){
113 }
114 }
115 }
116 }
117 }
118 }
119 }
120 }
121 a: (#struct){
122 config: (#struct){
123 a: (int){ 34 }
124 }
125 body: (int){ 34 }
126 mas: (#struct){
127 one: (#struct){
128 cfg: (#struct){
129 b: (int){ 34 }
130 }
131 _link: (#struct){
132 config: (#struct){
133 b: (int){ int }
134 }
135 body: (int){ int }
136 mas: (#struct){
137 two: (#struct){
138 cfg: (#struct){
139 c: (int){ int }
140 }
141 _link: (#struct){
142 config: (#struct){
143 c: (int){ int }
144 }
145 body: (int){ int }
146 mas: (#struct){
147 }
148 }
149 link: (#struct){
150 config: (#struct){
151 c: (int){ int }
152 }
153 body: (int){ int }
154 mas: (#struct){
155 }
156 }
157 }
158 }
159 }
160 link: (#struct){
161 config: (#struct){
162 b: (int){ 34 }
163 }
164 body: (int){ 34 }
165 mas: (#struct){
166 two: (#struct){
167 cfg: (#struct){
168 c: (int){ 34 }
169 }
170 _link: (#struct){
171 config: (#struct){
172 c: (int){ int }
173 }
174 body: (int){ int }
175 mas: (#struct){
176 }
177 }
178 link: (#struct){
179 config: (#struct){
180 c: (int){ 34 }
181 }
182 body: (int){ 34 }
183 mas: (#struct){
184 }
185 }
186 }
187 }
188 }
189 }
190 }
191 }
192}
193-- out/compile --
194--- in.cue
195{
196 #T: {
197 config: _
198 body: _
199 mas: {
200 [string]: {
201 cfg: _
202 _link: 〈3;#T〉
203 link: (〈0;_link〉 & {
204 config: 〈1;cfg〉
205 })
206 }
207 }
208 }
209 #a: (〈0;#T〉 & {
210 config: {
211 a: int
212 }
213 body: 〈0;config〉.a
214 mas: {
215 one: {
216 cfg: {
217 b: 〈3;config〉.a
218 }
219 _link: {
220 config: {
221 b: int
222 }
223 body: 〈0;config〉.b
224 mas: {
225 two: {
226 cfg: {
227 c: 〈3;config〉.b
228 }
229 _link: {
230 config: {
231 c: int
232 }
233 body: 〈0;config〉.c
234 }
235 }
236 }
237 }
238 }
239 }
240 })
241 a: (〈0;#a〉 & {
242 config: {
243 a: 34
244 }
245 })
246}
View as plain text