cuelang.org/go@v0.13.0/cue/testdata/fulleval/022_references_from_template_to_concrete.txtar (about) 1 #name: references from template to concrete 2 #evalFull 3 -- in.cue -- 4 res: [t] 5 t: [X=string]: { 6 a: c + b.str 7 b: str: string 8 c: "X" 9 } 10 t: x: {b: str: "DDDD"} 11 -- out/def -- 12 res: [t] 13 t: { 14 {[X=string]: { 15 a: c + b.str, c: "X", b: { 16 str: string 17 } 18 }} 19 x: { 20 a: "XDDDD" 21 c: "X" 22 b: { 23 str: "DDDD" 24 } 25 } 26 } 27 -- out/export -- 28 res: [{ 29 x: { 30 a: "XDDDD" 31 c: "X" 32 b: { 33 str: "DDDD" 34 } 35 } 36 }] 37 t: { 38 x: { 39 a: "XDDDD" 40 c: "X" 41 b: { 42 str: "DDDD" 43 } 44 } 45 } 46 -- out/yaml -- 47 res: 48 - x: 49 a: XDDDD 50 c: X 51 b: 52 str: DDDD 53 t: 54 x: 55 a: XDDDD 56 c: X 57 b: 58 str: DDDD 59 -- out/json -- 60 {"res":[{"x":{"a":"XDDDD","c":"X","b":{"str":"DDDD"}}}],"t":{"x":{"a":"XDDDD","c":"X","b":{"str":"DDDD"}}}} 61 -- out/legacy-debug -- 62 <0>{res: [<1>{[]: <2>(X: string)-><3>{a: (<3>.c + <3>.b.str), c: "X", b: <4>{str: string}}, x: <5>{a: "XDDDD", c: "X", b: <6>{str: "DDDD"}}}], t: <7>{[]: <2>(X: string)-><3>{a: (<3>.c + <3>.b.str), c: "X", b: <4>{str: string}}, x: <8>{a: "XDDDD", c: "X", b: <9>{str: "DDDD"}}}} 63 -- out/compile -- 64 --- in.cue 65 { 66 res: [ 67 〈1;t〉, 68 ] 69 t: { 70 [string]: { 71 a: (〈0;c〉 + 〈0;b〉.str) 72 b: { 73 str: string 74 } 75 c: "X" 76 } 77 } 78 t: { 79 x: { 80 b: { 81 str: "DDDD" 82 } 83 } 84 } 85 } 86 -- out/eval/stats -- 87 Leaks: 0 88 Freed: 14 89 Reused: 7 90 Allocs: 7 91 Retain: 3 92 93 Unifications: 14 94 Conjuncts: 21 95 Disjuncts: 15 96 -- out/evalalpha -- 97 (struct){ 98 res: (#list){ 99 0: ~(t) 100 } 101 t: (struct){ 102 x: (struct){ 103 b: (struct){ 104 str: (string){ "DDDD" } 105 } 106 a: (string){ "XDDDD" } 107 c: (string){ "X" } 108 } 109 } 110 } 111 -- diff/-out/evalalpha<==>+out/eval -- 112 diff old new 113 --- old 114 +++ new 115 @@ -1,14 +1,6 @@ 116 (struct){ 117 res: (#list){ 118 - 0: (struct){ 119 - x: (struct){ 120 - b: (struct){ 121 - str: (string){ "DDDD" } 122 - } 123 - a: (string){ "XDDDD" } 124 - c: (string){ "X" } 125 - } 126 - } 127 + 0: ~(t) 128 } 129 t: (struct){ 130 x: (struct){ 131 -- out/eval -- 132 (struct){ 133 res: (#list){ 134 0: (struct){ 135 x: (struct){ 136 b: (struct){ 137 str: (string){ "DDDD" } 138 } 139 a: (string){ "XDDDD" } 140 c: (string){ "X" } 141 } 142 } 143 } 144 t: (struct){ 145 x: (struct){ 146 b: (struct){ 147 str: (string){ "DDDD" } 148 } 149 a: (string){ "XDDDD" } 150 c: (string){ "X" } 151 } 152 } 153 }