cuelang.org/go@v0.10.1/cue/testdata/basicrewrite/019_resolved_self-reference_cycles.txtar (about) 1 # DO NOT EDIT; generated by go run testdata/gen.go 2 # 3 #name: resolved self-reference cycles 4 #evalPartial 5 -- in.cue -- 6 math: p1: { 7 a: b - 100 8 b: a + 100 9 b: 200 10 } 11 math: p2: { 12 a: b - 100 13 b: 200 14 b: a + 100 15 } 16 math: p3: { 17 b: a + 100 18 a: b - 100 19 b: 200 20 } 21 math: p4: { 22 b: a + 100 23 b: 200 24 a: b - 100 25 } 26 math: p5: { 27 b: 200 28 b: a + 100 29 a: b - 100 30 } 31 math: p6: { 32 b: 200 33 a: b - 100 34 b: a + 100 35 } 36 37 a: 100 38 39 list: t0: c: [c[0]] 40 41 list: t1: p1: c: [c[1], a] 42 list: t1: p2: c: [a, c[0]] 43 44 nodes: t1: p1: s1: s1 & {a: 1} 45 nodes: t1: p2: s1: {a: 1} & s1 46 nodes: t2: { 47 s1: s2 & {a: 1} 48 s2: s1 & {b: 2} 49 } 50 nodes: t3: { 51 s1: s2 & {a: 1} 52 s2: s3 & {b: 2} 53 s3: s1 & {c: 3} 54 } 55 56 -- out/def -- 57 a: 100 58 b: 200 59 c: [100, 100] 60 s1: s2 & { 61 a: 1 62 } 63 s2: s3 & { 64 b: 2 65 } 66 s3: s1 & { 67 c: 3 68 } 69 -- out/export -- 70 a: 100 71 b: 200 72 c: [100, 100] 73 s1: { 74 a: 1 75 b: 2 76 c: 3 77 } 78 s2: { 79 a: 1 80 b: 2 81 c: 3 82 } 83 s3: { 84 a: 1 85 b: 2 86 c: 3 87 } 88 -- out/yaml -- 89 a: 100 90 b: 200 91 c: 92 - 100 93 - 100 94 s1: 95 a: 1 96 b: 2 97 c: 3 98 s2: 99 a: 1 100 b: 2 101 c: 3 102 s3: 103 a: 1 104 b: 2 105 c: 3 106 -- out/json -- 107 {"a":100,"b":200,"c":[100,100],"s1":{"a":1,"b":2,"c":3},"s2":{"a":1,"b":2,"c":3},"s3":{"a":1,"b":2,"c":3}} 108 -- out/legacy-debug -- 109 <0>{a: 100, b: 200, c: [100,100], s1: <1>{a: 1, b: 2, c: 3}, s2: <2>{a: 1, b: 2, c: 3}, s3: <3>{a: 1, b: 2, c: 3}} 110 -- out/compile -- 111 --- in.cue 112 { 113 math: { 114 p1: { 115 a: (〈0;b〉 - 100) 116 b: (〈0;a〉 + 100) 117 b: 200 118 } 119 } 120 math: { 121 p2: { 122 a: (〈0;b〉 - 100) 123 b: 200 124 b: (〈0;a〉 + 100) 125 } 126 } 127 math: { 128 p3: { 129 b: (〈0;a〉 + 100) 130 a: (〈0;b〉 - 100) 131 b: 200 132 } 133 } 134 math: { 135 p4: { 136 b: (〈0;a〉 + 100) 137 b: 200 138 a: (〈0;b〉 - 100) 139 } 140 } 141 math: { 142 p5: { 143 b: 200 144 b: (〈0;a〉 + 100) 145 a: (〈0;b〉 - 100) 146 } 147 } 148 math: { 149 p6: { 150 b: 200 151 a: (〈0;b〉 - 100) 152 b: (〈0;a〉 + 100) 153 } 154 } 155 a: 100 156 list: { 157 t0: { 158 c: [ 159 〈1;c〉[0], 160 ] 161 } 162 } 163 list: { 164 t1: { 165 p1: { 166 c: [ 167 〈1;c〉[1], 168 〈4;a〉, 169 ] 170 } 171 } 172 } 173 list: { 174 t1: { 175 p2: { 176 c: [ 177 〈4;a〉, 178 〈1;c〉[0], 179 ] 180 } 181 } 182 } 183 nodes: { 184 t1: { 185 p1: { 186 s1: (〈0;s1〉 & { 187 a: 1 188 }) 189 } 190 } 191 } 192 nodes: { 193 t1: { 194 p2: { 195 s1: ({ 196 a: 1 197 } & 〈0;s1〉) 198 } 199 } 200 } 201 nodes: { 202 t2: { 203 s1: (〈0;s2〉 & { 204 a: 1 205 }) 206 s2: (〈0;s1〉 & { 207 b: 2 208 }) 209 } 210 } 211 nodes: { 212 t3: { 213 s1: (〈0;s2〉 & { 214 a: 1 215 }) 216 s2: (〈0;s3〉 & { 217 b: 2 218 }) 219 s3: (〈0;s1〉 & { 220 c: 3 221 }) 222 } 223 } 224 } 225 -- out/eval/stats -- 226 Leaks: 0 227 Freed: 62 228 Reused: 55 229 Allocs: 7 230 Retain: 10 231 232 Unifications: 62 233 Conjuncts: 105 234 Disjuncts: 70 235 -- out/evalalpha -- 236 (struct){ 237 math: (struct){ 238 p1: (struct){ 239 a: (int){ 100 } 240 b: (int){ 200 } 241 } 242 p2: (struct){ 243 a: (int){ 100 } 244 b: (int){ 200 } 245 } 246 p3: (struct){ 247 b: (int){ 200 } 248 a: (int){ 100 } 249 } 250 p4: (struct){ 251 b: (int){ 200 } 252 a: (int){ 100 } 253 } 254 p5: (struct){ 255 b: (int){ 200 } 256 a: (int){ 100 } 257 } 258 p6: (struct){ 259 b: (int){ 200 } 260 a: (int){ 100 } 261 } 262 } 263 a: (int){ 100 } 264 list: (struct){ 265 t0: (struct){ 266 c: (#list){ 267 0: (_){ _ } 268 } 269 } 270 t1: (struct){ 271 p1: (struct){ 272 c: (#list){ 273 0: (int){ 100 } 274 1: (int){ 100 } 275 } 276 } 277 p2: (struct){ 278 c: (#list){ 279 0: (int){ 100 } 280 1: (int){ 100 } 281 } 282 } 283 } 284 } 285 nodes: (struct){ 286 t1: (struct){ 287 p1: (struct){ 288 s1: (struct){ 289 a: (int){ 1 } 290 } 291 } 292 p2: (struct){ 293 s1: (struct){ 294 a: (int){ 1 } 295 } 296 } 297 } 298 t2: (struct){ 299 s1: (struct){ 300 a: (int){ 1 } 301 b: (int){ 2 } 302 } 303 s2: (struct){ 304 b: (int){ 2 } 305 a: (int){ 1 } 306 } 307 } 308 t3: (struct){ 309 s1: (struct){ 310 a: (int){ 1 } 311 b: (int){ 2 } 312 c: (int){ 3 } 313 } 314 s2: (struct){ 315 b: (int){ 2 } 316 c: (int){ 3 } 317 a: (int){ 1 } 318 } 319 s3: (struct){ 320 c: (int){ 3 } 321 a: (int){ 1 } 322 b: (int){ 2 } 323 } 324 } 325 } 326 } 327 -- diff/-out/evalalpha<==>+out/eval -- 328 diff old new 329 --- old 330 +++ new 331 @@ -73,18 +73,18 @@ 332 t3: (struct){ 333 s1: (struct){ 334 a: (int){ 1 } 335 - c: (int){ 3 } 336 - b: (int){ 2 } 337 - } 338 - s2: (struct){ 339 - b: (int){ 2 } 340 - a: (int){ 1 } 341 - c: (int){ 3 } 342 + b: (int){ 2 } 343 + c: (int){ 3 } 344 + } 345 + s2: (struct){ 346 + b: (int){ 2 } 347 + c: (int){ 3 } 348 + a: (int){ 1 } 349 } 350 s3: (struct){ 351 c: (int){ 3 } 352 - b: (int){ 2 } 353 - a: (int){ 1 } 354 + a: (int){ 1 } 355 + b: (int){ 2 } 356 } 357 } 358 } 359 -- diff/explanation -- 360 Reordering. 361 -- out/eval -- 362 (struct){ 363 math: (struct){ 364 p1: (struct){ 365 a: (int){ 100 } 366 b: (int){ 200 } 367 } 368 p2: (struct){ 369 a: (int){ 100 } 370 b: (int){ 200 } 371 } 372 p3: (struct){ 373 b: (int){ 200 } 374 a: (int){ 100 } 375 } 376 p4: (struct){ 377 b: (int){ 200 } 378 a: (int){ 100 } 379 } 380 p5: (struct){ 381 b: (int){ 200 } 382 a: (int){ 100 } 383 } 384 p6: (struct){ 385 b: (int){ 200 } 386 a: (int){ 100 } 387 } 388 } 389 a: (int){ 100 } 390 list: (struct){ 391 t0: (struct){ 392 c: (#list){ 393 0: (_){ _ } 394 } 395 } 396 t1: (struct){ 397 p1: (struct){ 398 c: (#list){ 399 0: (int){ 100 } 400 1: (int){ 100 } 401 } 402 } 403 p2: (struct){ 404 c: (#list){ 405 0: (int){ 100 } 406 1: (int){ 100 } 407 } 408 } 409 } 410 } 411 nodes: (struct){ 412 t1: (struct){ 413 p1: (struct){ 414 s1: (struct){ 415 a: (int){ 1 } 416 } 417 } 418 p2: (struct){ 419 s1: (struct){ 420 a: (int){ 1 } 421 } 422 } 423 } 424 t2: (struct){ 425 s1: (struct){ 426 a: (int){ 1 } 427 b: (int){ 2 } 428 } 429 s2: (struct){ 430 b: (int){ 2 } 431 a: (int){ 1 } 432 } 433 } 434 t3: (struct){ 435 s1: (struct){ 436 a: (int){ 1 } 437 c: (int){ 3 } 438 b: (int){ 2 } 439 } 440 s2: (struct){ 441 b: (int){ 2 } 442 a: (int){ 1 } 443 c: (int){ 3 } 444 } 445 s3: (struct){ 446 c: (int){ 3 } 447 b: (int){ 2 } 448 a: (int){ 1 } 449 } 450 } 451 } 452 }