cuelang.org/go@v0.13.0/cue/testdata/cycle/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 18 e: [rn=string]: _Q[0 : len(a[rn])+1] 19 e: ben: [{}, ...] 20 21 f: [rn=string]: _Q[0 : len(a[rn])+1] 22 f: ben: [{}] 23 24 g: [rn=string]: _Q[0:len(a[rn])] 25 g: ben: [{}, {}] 26 -- out/eval/stats -- 27 Leaks: 0 28 Freed: 43 29 Reused: 38 30 Allocs: 5 31 Retain: 0 32 33 Unifications: 43 34 Conjuncts: 83 35 Disjuncts: 45 36 -- out/evalalpha -- 37 Errors: 38 f.ben: incompatible list lengths (1 and 2) 39 g.ben: incompatible list lengths (1 and 2) 40 41 Result: 42 (_|_){ 43 // [eval] 44 _Q: (#list){ 45 0: (struct){ 46 pos: (int){ 0 } 47 } 48 1: (struct){ 49 pos: (int){ 1 } 50 } 51 } 52 a: (struct){ 53 ben: (#list){ 54 0: (struct){ 55 pos: (int){ 0 } 56 } 57 } 58 } 59 b: (struct){ 60 ben: (#list){ 61 0: (struct){ 62 pos: (int){ 0 } 63 } 64 } 65 } 66 c: (struct){ 67 ben: (#list){ 68 0: (struct){ 69 l: (int){ 1 } 70 } 71 } 72 } 73 #d: (#struct){ 74 ben: (#list){ 75 0: (#struct){ 76 pos: (int){ 0 } 77 } 78 } 79 } 80 d: ~(#d) 81 e: (struct){ 82 ben: (#list){ 83 0: (struct){ 84 pos: (int){ 0 } 85 } 86 1: (struct){ 87 pos: (int){ 1 } 88 } 89 } 90 } 91 f: (_|_){ 92 // [eval] 93 ben: (_|_){ 94 // [eval] f.ben: incompatible list lengths (1 and 2) 95 0: (struct){ 96 } 97 } 98 } 99 g: (_|_){ 100 // [eval] 101 ben: (_|_){ 102 // [eval] g.ben: incompatible list lengths (1 and 2) 103 0: (struct){ 104 } 105 1: (struct){ 106 } 107 } 108 } 109 } 110 -- diff/-out/evalalpha<==>+out/eval -- 111 diff old new 112 --- old 113 +++ new 114 @@ -41,13 +41,7 @@ 115 } 116 } 117 } 118 - d: (#struct){ 119 - ben: (#list){ 120 - 0: (#struct){ 121 - pos: (int){ 0 } 122 - } 123 - } 124 - } 125 + d: ~(#d) 126 e: (struct){ 127 ben: (#list){ 128 0: (struct){ 129 @@ -63,10 +57,6 @@ 130 ben: (_|_){ 131 // [eval] f.ben: incompatible list lengths (1 and 2) 132 0: (struct){ 133 - pos: (int){ 0 } 134 - } 135 - 1: (struct){ 136 - pos: (int){ 1 } 137 } 138 } 139 } 140 @@ -75,7 +65,6 @@ 141 ben: (_|_){ 142 // [eval] g.ben: incompatible list lengths (1 and 2) 143 0: (struct){ 144 - pos: (int){ 0 } 145 } 146 1: (struct){ 147 } 148 -- diff/todo/p2 -- 149 error path moved 150 -- out/eval -- 151 Errors: 152 f.ben: incompatible list lengths (1 and 2) 153 g.ben: incompatible list lengths (1 and 2) 154 155 Result: 156 (_|_){ 157 // [eval] 158 _Q: (#list){ 159 0: (struct){ 160 pos: (int){ 0 } 161 } 162 1: (struct){ 163 pos: (int){ 1 } 164 } 165 } 166 a: (struct){ 167 ben: (#list){ 168 0: (struct){ 169 pos: (int){ 0 } 170 } 171 } 172 } 173 b: (struct){ 174 ben: (#list){ 175 0: (struct){ 176 pos: (int){ 0 } 177 } 178 } 179 } 180 c: (struct){ 181 ben: (#list){ 182 0: (struct){ 183 l: (int){ 1 } 184 } 185 } 186 } 187 #d: (#struct){ 188 ben: (#list){ 189 0: (#struct){ 190 pos: (int){ 0 } 191 } 192 } 193 } 194 d: (#struct){ 195 ben: (#list){ 196 0: (#struct){ 197 pos: (int){ 0 } 198 } 199 } 200 } 201 e: (struct){ 202 ben: (#list){ 203 0: (struct){ 204 pos: (int){ 0 } 205 } 206 1: (struct){ 207 pos: (int){ 1 } 208 } 209 } 210 } 211 f: (_|_){ 212 // [eval] 213 ben: (_|_){ 214 // [eval] f.ben: incompatible list lengths (1 and 2) 215 0: (struct){ 216 pos: (int){ 0 } 217 } 218 1: (struct){ 219 pos: (int){ 1 } 220 } 221 } 222 } 223 g: (_|_){ 224 // [eval] 225 ben: (_|_){ 226 // [eval] g.ben: incompatible list lengths (1 and 2) 227 0: (struct){ 228 pos: (int){ 0 } 229 } 230 1: (struct){ 231 } 232 } 233 } 234 } 235 -- out/compile -- 236 --- in.cue 237 { 238 _Q: [ 239 { 240 pos: 0 241 }, 242 { 243 pos: 1 244 }, 245 ] 246 a: { 247 [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])] 248 } 249 a: { 250 ben: [ 251 {}, 252 ] 253 } 254 b: { 255 [string]: 〈1;_Q〉[0:1] 256 } 257 b: { 258 ben: [ 259 {}, 260 ] 261 } 262 c: { 263 [string]: [ 264 ...{ 265 l: len(〈3;a〉[〈2;-〉]) 266 }, 267 ] 268 } 269 c: { 270 ben: [ 271 {}, 272 ] 273 } 274 #d: { 275 [string]: ([ 276 ...{ 277 pos: &(int, >=0) 278 }, 279 ] & 〈1;_Q〉[0:len(〈1;#d〉[〈0;-〉])]) 280 } 281 #d: { 282 ben: [ 283 {}, 284 ] 285 } 286 d: 〈0;#d〉 287 e: { 288 [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)] 289 } 290 e: { 291 ben: [ 292 {}, 293 ..., 294 ] 295 } 296 f: { 297 [string]: 〈1;_Q〉[0:(len(〈1;a〉[〈0;-〉]) + 1)] 298 } 299 f: { 300 ben: [ 301 {}, 302 ] 303 } 304 g: { 305 [string]: 〈1;_Q〉[0:len(〈1;a〉[〈0;-〉])] 306 } 307 g: { 308 ben: [ 309 {}, 310 {}, 311 ] 312 } 313 }