cuelang.org/go@v0.13.0/cue/testdata/eval/issue494.txtar (about) 1 -- in.cue -- 2 _Q: [{pos: 0}, {pos: 1}] 3 4 a: [rn=string]: _Q[0:len(a[rn])] 5 a: ben: [{}] 6 7 b: [rn=string]: _Q[0:1] 8 b: ben: [{}] 9 10 c: [rn=string]: [...{l: len(a[rn])}] 11 c: ben: [{}] 12 13 #d: [rn=string]: [...{pos: uint}] & _Q[0:len(#d[rn])] 14 #d: ben: [{}] 15 16 d: #d 17 -- out/eval/stats -- 18 Leaks: 0 19 Freed: 26 20 Reused: 21 21 Allocs: 5 22 Retain: 0 23 24 Unifications: 26 25 Conjuncts: 56 26 Disjuncts: 28 27 -- out/evalalpha -- 28 (struct){ 29 _Q: (#list){ 30 0: (struct){ 31 pos: (int){ 0 } 32 } 33 1: (struct){ 34 pos: (int){ 1 } 35 } 36 } 37 a: (struct){ 38 ben: (#list){ 39 0: (struct){ 40 pos: (int){ 0 } 41 } 42 } 43 } 44 b: (struct){ 45 ben: (#list){ 46 0: (struct){ 47 pos: (int){ 0 } 48 } 49 } 50 } 51 c: (struct){ 52 ben: (#list){ 53 0: (struct){ 54 l: (int){ 1 } 55 } 56 } 57 } 58 #d: (#struct){ 59 ben: (#list){ 60 0: (#struct){ 61 pos: (int){ 0 } 62 } 63 } 64 } 65 d: ~(#d) 66 } 67 -- diff/-out/evalalpha<==>+out/eval -- 68 diff old new 69 --- old 70 +++ new 71 @@ -35,11 +35,5 @@ 72 } 73 } 74 } 75 - d: (#struct){ 76 - ben: (#list){ 77 - 0: (#struct){ 78 - pos: (int){ 0 } 79 - } 80 - } 81 - } 82 + d: ~(#d) 83 } 84 -- out/eval -- 85 (struct){ 86 _Q: (#list){ 87 0: (struct){ 88 pos: (int){ 0 } 89 } 90 1: (struct){ 91 pos: (int){ 1 } 92 } 93 } 94 a: (struct){ 95 ben: (#list){ 96 0: (struct){ 97 pos: (int){ 0 } 98 } 99 } 100 } 101 b: (struct){ 102 ben: (#list){ 103 0: (struct){ 104 pos: (int){ 0 } 105 } 106 } 107 } 108 c: (struct){ 109 ben: (#list){ 110 0: (struct){ 111 l: (int){ 1 } 112 } 113 } 114 } 115 #d: (#struct){ 116 ben: (#list){ 117 0: (#struct){ 118 pos: (int){ 0 } 119 } 120 } 121 } 122 d: (#struct){ 123 ben: (#list){ 124 0: (#struct){ 125 pos: (int){ 0 } 126 } 127 } 128 } 129 } 130 -- out/compile -- 131 --- in.cue 132 { 133 _Q: [ 134 { 135 pos: 0 136 }, 137 { 138 pos: 1 139 }, 140 ] 141 a: { 142 [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])] 143 } 144 a: { 145 ben: [ 146 {}, 147 ] 148 } 149 b: { 150 [string]: 〈1;_Q〉[0:1] 151 } 152 b: { 153 ben: [ 154 {}, 155 ] 156 } 157 c: { 158 [string]: [ 159 ...{ 160 l: len(〈3;a〉[〈2;-〉]) 161 }, 162 ] 163 } 164 c: { 165 ben: [ 166 {}, 167 ] 168 } 169 #d: { 170 [string]: ([ 171 ...{ 172 pos: &(int, >=0) 173 }, 174 ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])]) 175 } 176 #d: { 177 ben: [ 178 {}, 179 ] 180 } 181 d: 〈0;#d〉 182 }