-- in.cue -- t1: a: { a1: a0 + 2 b1: a1 - 2 a0: X X: b1 X: 5.0 } t1: b: { X: 5.0 a1: a0 + 2 b1: a1 - 2 a0: X X: b1 } t1: c: { a1: a0 + 2 b1: a1 - 2 X: 5.0 a0: X X: b1 } t1: c: { b1: a1 - 2 a1: a0 + 2 X: 5.0 a0: X X: b1 } t1: c: { b1: a1 - 2 X: 5.0 a1: a0 + 2 a0: X X: b1 } t1total: { for _, v in t1 {v} } // Issue #622 t2: a: { a0: X a1: a0 * 2 Y: a1 b0: Y b1: b0 / 2 X: b1 X: 5.0 } t2: b: { b0: Y b1: b0 / 2 X: b1 a0: X a1: a0 * 2 Y: a1 X: 5.0 } t2: c: { b0: Y b1: b0 / 2 X: b1 X: 5.0 a0: X a1: a0 * 2 Y: a1 } t2: d: { b0: Y b1: b0 / 2 X: b1 a0: X a1: a0 * 2 Y: a1 X: 5.0 } t2total: { for _, v in t2 {v} } -- out/eval/stats -- Leaks: 0 Freed: 58 Reused: 49 Allocs: 9 Retain: 71 Unifications: 58 Conjuncts: 410 Disjuncts: 75 -- out/eval -- (struct){ t1: (struct){ a: (struct){ a1: (float){ 7.0 } b1: (float){ 5.0 } a0: (float){ 5.0 } X: (float){ 5.0 } } b: (struct){ X: (float){ 5.0 } a1: (float){ 7.0 } b1: (float){ 5.0 } a0: (float){ 5.0 } } c: (struct){ a1: (float){ 7.0 } b1: (float){ 5.0 } X: (float){ 5.0 } a0: (float){ 5.0 } } } t1total: (struct){ a1: (float){ 7.0 } b1: (float){ 5.0 } a0: (float){ 5.0 } X: (float){ 5.0 } } t2: (struct){ a: (struct){ a0: (float){ 5.0 } a1: (float){ 10.0 } Y: (float){ 10.0 } b0: (float){ 10.0 } b1: (float){ 5.0 } X: (float){ 5.0 } } b: (struct){ b0: (float){ 10.0 } b1: (float){ 5.0 } X: (float){ 5.0 } a0: (float){ 5.0 } a1: (float){ 10.0 } Y: (float){ 10.0 } } c: (struct){ b0: (float){ 10.0 } b1: (float){ 5.0 } X: (float){ 5.0 } a0: (float){ 5.0 } a1: (float){ 10.0 } Y: (float){ 10.0 } } d: (struct){ b0: (float){ 10.0 } b1: (float){ 5.0 } X: (float){ 5.0 } a0: (float){ 5.0 } a1: (float){ 10.0 } Y: (float){ 10.0 } } } t2total: (struct){ a0: (float){ 5.0 } a1: (float){ 10.0 } Y: (float){ 10.0 } b0: (float){ 10.0 } b1: (float){ 5.0 } X: (float){ 5.0 } } } -- out/compile -- --- in.cue { t1: { a: { a1: (〈0;a0〉 + 2) b1: (〈0;a1〉 - 2) a0: 〈0;X〉 X: 〈0;b1〉 X: 5.0 } } t1: { b: { X: 5.0 a1: (〈0;a0〉 + 2) b1: (〈0;a1〉 - 2) a0: 〈0;X〉 X: 〈0;b1〉 } } t1: { c: { a1: (〈0;a0〉 + 2) b1: (〈0;a1〉 - 2) X: 5.0 a0: 〈0;X〉 X: 〈0;b1〉 } } t1: { c: { b1: (〈0;a1〉 - 2) a1: (〈0;a0〉 + 2) X: 5.0 a0: 〈0;X〉 X: 〈0;b1〉 } } t1: { c: { b1: (〈0;a1〉 - 2) X: 5.0 a1: (〈0;a0〉 + 2) a0: 〈0;X〉 X: 〈0;b1〉 } } t1total: { for _, v in 〈1;t1〉 { 〈1;v〉 } } t2: { a: { a0: 〈0;X〉 a1: (〈0;a0〉 * 2) Y: 〈0;a1〉 b0: 〈0;Y〉 b1: (〈0;b0〉 / 2) X: 〈0;b1〉 X: 5.0 } } t2: { b: { b0: 〈0;Y〉 b1: (〈0;b0〉 / 2) X: 〈0;b1〉 a0: 〈0;X〉 a1: (〈0;a0〉 * 2) Y: 〈0;a1〉 X: 5.0 } } t2: { c: { b0: 〈0;Y〉 b1: (〈0;b0〉 / 2) X: 〈0;b1〉 X: 5.0 a0: 〈0;X〉 a1: (〈0;a0〉 * 2) Y: 〈0;a1〉 } } t2: { d: { b0: 〈0;Y〉 b1: (〈0;b0〉 / 2) X: 〈0;b1〉 a0: 〈0;X〉 a1: (〈0;a0〉 * 2) Y: 〈0;a1〉 X: 5.0 } } t2total: { for _, v in 〈1;t2〉 { 〈1;v〉 } } }