# DO NOT EDIT; generated by go run testdata/gen.go # #name: resolved self-reference cycles #evalPartial -- in.cue -- math: p1: { a: b - 100 b: a + 100 b: 200 } math: p2: { a: b - 100 b: 200 b: a + 100 } math: p3: { b: a + 100 a: b - 100 b: 200 } math: p4: { b: a + 100 b: 200 a: b - 100 } math: p5: { b: 200 b: a + 100 a: b - 100 } math: p6: { b: 200 a: b - 100 b: a + 100 } a: 100 list: t0: c: [c[0]] list: t1: p1: c: [c[1], a] list: t1: p2: c: [a, c[0]] nodes: t1: p1: s1: s1 & {a: 1} nodes: t1: p2: s1: {a: 1} & s1 nodes: t2: { s1: s2 & {a: 1} s2: s1 & {b: 2} } nodes: t3: { s1: s2 & {a: 1} s2: s3 & {b: 2} s3: s1 & {c: 3} } -- out/def -- a: 100 b: 200 c: [100, 100] s1: s2 & { a: 1 } s2: s3 & { b: 2 } s3: s1 & { c: 3 } -- out/export -- 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 } -- out/yaml -- 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 -- out/json -- {"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}} -- out/legacy-debug -- <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}} -- out/compile -- --- in.cue { math: { p1: { a: (〈0;b〉 - 100) b: (〈0;a〉 + 100) b: 200 } } math: { p2: { a: (〈0;b〉 - 100) b: 200 b: (〈0;a〉 + 100) } } math: { p3: { b: (〈0;a〉 + 100) a: (〈0;b〉 - 100) b: 200 } } math: { p4: { b: (〈0;a〉 + 100) b: 200 a: (〈0;b〉 - 100) } } math: { p5: { b: 200 b: (〈0;a〉 + 100) a: (〈0;b〉 - 100) } } math: { p6: { b: 200 a: (〈0;b〉 - 100) b: (〈0;a〉 + 100) } } a: 100 list: { t0: { c: [ 〈1;c〉[0], ] } } list: { t1: { p1: { c: [ 〈1;c〉[1], 〈4;a〉, ] } } } list: { t1: { p2: { c: [ 〈4;a〉, 〈1;c〉[0], ] } } } nodes: { t1: { p1: { s1: (〈0;s1〉 & { a: 1 }) } } } nodes: { t1: { p2: { s1: ({ a: 1 } & 〈0;s1〉) } } } nodes: { t2: { s1: (〈0;s2〉 & { a: 1 }) s2: (〈0;s1〉 & { b: 2 }) } } nodes: { t3: { s1: (〈0;s2〉 & { a: 1 }) s2: (〈0;s3〉 & { b: 2 }) s3: (〈0;s1〉 & { c: 3 }) } } } -- out/eval/stats -- Leaks: 0 Freed: 62 Reused: 55 Allocs: 7 Retain: 10 Unifications: 62 Conjuncts: 105 Disjuncts: 70 -- out/evalalpha -- (struct){ math: (struct){ p1: (struct){ a: (int){ 100 } b: (int){ 200 } } p2: (struct){ a: (int){ 100 } b: (int){ 200 } } p3: (struct){ b: (int){ 200 } a: (int){ 100 } } p4: (struct){ b: (int){ 200 } a: (int){ 100 } } p5: (struct){ b: (int){ 200 } a: (int){ 100 } } p6: (struct){ b: (int){ 200 } a: (int){ 100 } } } a: (int){ 100 } list: (struct){ t0: (struct){ c: (#list){ 0: (_){ _ } } } t1: (struct){ p1: (struct){ c: (#list){ 0: (int){ 100 } 1: (int){ 100 } } } p2: (struct){ c: (#list){ 0: (int){ 100 } 1: (int){ 100 } } } } } nodes: (struct){ t1: (struct){ p1: (struct){ s1: (struct){ a: (int){ 1 } } } p2: (struct){ s1: (struct){ a: (int){ 1 } } } } t2: (struct){ s1: (struct){ a: (int){ 1 } b: (int){ 2 } } s2: (struct){ b: (int){ 2 } a: (int){ 1 } } } t3: (struct){ s1: (struct){ a: (int){ 1 } b: (int){ 2 } c: (int){ 3 } } s2: (struct){ b: (int){ 2 } c: (int){ 3 } a: (int){ 1 } } s3: (struct){ c: (int){ 3 } a: (int){ 1 } b: (int){ 2 } } } } } -- diff/-out/evalalpha<==>+out/eval -- diff old new --- old +++ new @@ -73,18 +73,18 @@ t3: (struct){ s1: (struct){ a: (int){ 1 } - c: (int){ 3 } - b: (int){ 2 } - } - s2: (struct){ - b: (int){ 2 } - a: (int){ 1 } - c: (int){ 3 } + b: (int){ 2 } + c: (int){ 3 } + } + s2: (struct){ + b: (int){ 2 } + c: (int){ 3 } + a: (int){ 1 } } s3: (struct){ c: (int){ 3 } - b: (int){ 2 } - a: (int){ 1 } + a: (int){ 1 } + b: (int){ 2 } } } } -- diff/explanation -- Reordering. -- out/eval -- (struct){ math: (struct){ p1: (struct){ a: (int){ 100 } b: (int){ 200 } } p2: (struct){ a: (int){ 100 } b: (int){ 200 } } p3: (struct){ b: (int){ 200 } a: (int){ 100 } } p4: (struct){ b: (int){ 200 } a: (int){ 100 } } p5: (struct){ b: (int){ 200 } a: (int){ 100 } } p6: (struct){ b: (int){ 200 } a: (int){ 100 } } } a: (int){ 100 } list: (struct){ t0: (struct){ c: (#list){ 0: (_){ _ } } } t1: (struct){ p1: (struct){ c: (#list){ 0: (int){ 100 } 1: (int){ 100 } } } p2: (struct){ c: (#list){ 0: (int){ 100 } 1: (int){ 100 } } } } } nodes: (struct){ t1: (struct){ p1: (struct){ s1: (struct){ a: (int){ 1 } } } p2: (struct){ s1: (struct){ a: (int){ 1 } } } } t2: (struct){ s1: (struct){ a: (int){ 1 } b: (int){ 2 } } s2: (struct){ b: (int){ 2 } a: (int){ 1 } } } t3: (struct){ s1: (struct){ a: (int){ 1 } c: (int){ 3 } b: (int){ 2 } } s2: (struct){ b: (int){ 2 } a: (int){ 1 } c: (int){ 3 } } s3: (struct){ c: (int){ 3 } b: (int){ 2 } a: (int){ 1 } } } } }