cuelang.org/go@v0.10.1/cue/testdata/cycle/issue242.txtar (about) 1 -- in.cue -- 2 #size: 2 3 #CellValue: 0 | 1 | 2 | 3 4 cell: "0": "0": #CellValue 5 cell: "0": "0": !=cell["0"]["1"] 6 cell: "0": "0": !=cell["1"]["0"] 7 cell: "0": "0": !=cell["1"]["1"] 8 9 cell: "0": "1": #CellValue 10 cell: "0": "1": !=cell["0"]["0"] 11 cell: "0": "1": !=cell["1"]["0"] 12 cell: "0": "1": !=cell["1"]["1"] 13 14 cell: "1": "0": #CellValue 15 cell: "1": "0": !=cell["0"]["0"] 16 cell: "1": "0": !=cell["0"]["1"] 17 cell: "1": "0": !=cell["1"]["1"] 18 19 cell: "1": "1": #CellValue 20 cell: "1": "1": !=cell["0"]["0"] 21 cell: "1": "1": !=cell["0"]["1"] 22 cell: "1": "1": !=cell["1"]["0"] 23 24 cell: "0": "0": 0 25 cell: "0": "1": 1 26 cell: "1": "0": 2 27 cell: "1": "1": 3 28 29 cell2: a: 0 | 1 30 cell2: a: !=cell2.b 31 32 cell2: b: 0 | 1 33 cell2: b: !=cell2.a 34 35 cell2: a: _ 36 cell2: b: 1 37 38 cell3: a: 0 | 1 39 cell3: a: !=cell3.b 40 41 cell3: b: 0 | 1 42 cell3: b: !=cell3.a 43 44 cell3: a: 0 45 cell3: b: _ 46 47 cell4: a: 0 | 1 48 cell4: a: !=cell4.b 49 50 cell4: b: 0 | 1 51 cell4: b: !=cell4.a 52 53 cell4: b: _ 54 cell4: a: 0 55 56 cell5: b: 0 | 1 57 cell5: b: !=cell5.a 58 59 cell5: a: 0 | 1 60 cell5: a: !=cell5.b 61 62 cell5: b: _ 63 cell5: a: 0 64 65 a: #CellValue 66 a: !=b 67 a: !=c 68 a: !=d 69 70 b: #CellValue 71 b: !=a 72 b: !=c 73 b: !=d 74 75 c: #CellValue 76 c: !=a 77 c: !=b 78 c: !=d 79 80 d: #CellValue 81 d: !=a 82 d: !=b 83 d: !=c 84 85 a: 0 86 b: 1 87 c: 2 88 d: 3 89 -- out/eval/stats -- 90 Leaks: 0 91 Freed: 78 92 Reused: 68 93 Allocs: 10 94 Retain: 18 95 96 Unifications: 26 97 Conjuncts: 181 98 Disjuncts: 82 99 -- out/evalalpha -- 100 Errors: 101 cell2.b: conflicting values 0 and 1: 102 ./in.cue:31:11 103 ./in.cue:35:11 104 105 Result: 106 (_|_){ 107 // [eval] 108 #size: (int){ 2 } 109 #CellValue: (int){ |((int){ 0 }, (int){ 1 }, (int){ 2 }, (int){ 3 }) } 110 cell: (struct){ 111 "0": (struct){ 112 "0": (int){ 0 } 113 "1": (int){ 1 } 114 } 115 "1": (struct){ 116 "0": (int){ 2 } 117 "1": (int){ 3 } 118 } 119 } 120 cell2: (_|_){ 121 // [eval] 122 a: (int){ |((int){ 0 }, (int){ 1 }) } 123 b: (_|_){ 124 // [eval] cell2.b: conflicting values 0 and 1: 125 // ./in.cue:31:11 126 // ./in.cue:35:11 127 } 128 } 129 cell3: (struct){ 130 a: (int){ 0 } 131 b: (int){ 1 } 132 } 133 cell4: (struct){ 134 a: (int){ 0 } 135 b: (int){ 1 } 136 } 137 cell5: (struct){ 138 b: (int){ |((int){ 0 }, (int){ 1 }) } 139 a: (int){ 0 } 140 } 141 a: (int){ 0 } 142 b: (int){ 1 } 143 c: (int){ 2 } 144 d: (int){ 3 } 145 } 146 -- diff/-out/evalalpha<==>+out/eval -- 147 diff old new 148 --- old 149 +++ new 150 @@ -1,4 +1,11 @@ 151 -(struct){ 152 +Errors: 153 +cell2.b: conflicting values 0 and 1: 154 + ./in.cue:31:11 155 + ./in.cue:35:11 156 + 157 +Result: 158 +(_|_){ 159 + // [eval] 160 #size: (int){ 2 } 161 #CellValue: (int){ |((int){ 0 }, (int){ 1 }, (int){ 2 }, (int){ 3 }) } 162 cell: (struct){ 163 @@ -11,9 +18,14 @@ 164 "1": (int){ 3 } 165 } 166 } 167 - cell2: (struct){ 168 - a: (int){ 0 } 169 - b: (int){ 1 } 170 + cell2: (_|_){ 171 + // [eval] 172 + a: (int){ |((int){ 0 }, (int){ 1 }) } 173 + b: (_|_){ 174 + // [eval] cell2.b: conflicting values 0 and 1: 175 + // ./in.cue:31:11 176 + // ./in.cue:35:11 177 + } 178 } 179 cell3: (struct){ 180 a: (int){ 0 } 181 @@ -24,7 +36,7 @@ 182 b: (int){ 1 } 183 } 184 cell5: (struct){ 185 - b: (int){ 1 } 186 + b: (int){ |((int){ 0 }, (int){ 1 }) } 187 a: (int){ 0 } 188 } 189 a: (int){ 0 } 190 -- diff/todo/p0 -- 191 cell2.b: new error. 192 cell5.b: unresolved disjunction. 193 -- out/eval -- 194 (struct){ 195 #size: (int){ 2 } 196 #CellValue: (int){ |((int){ 0 }, (int){ 1 }, (int){ 2 }, (int){ 3 }) } 197 cell: (struct){ 198 "0": (struct){ 199 "0": (int){ 0 } 200 "1": (int){ 1 } 201 } 202 "1": (struct){ 203 "0": (int){ 2 } 204 "1": (int){ 3 } 205 } 206 } 207 cell2: (struct){ 208 a: (int){ 0 } 209 b: (int){ 1 } 210 } 211 cell3: (struct){ 212 a: (int){ 0 } 213 b: (int){ 1 } 214 } 215 cell4: (struct){ 216 a: (int){ 0 } 217 b: (int){ 1 } 218 } 219 cell5: (struct){ 220 b: (int){ 1 } 221 a: (int){ 0 } 222 } 223 a: (int){ 0 } 224 b: (int){ 1 } 225 c: (int){ 2 } 226 d: (int){ 3 } 227 } 228 -- out/compile -- 229 --- in.cue 230 { 231 #size: 2 232 #CellValue: (0|1|2|3) 233 cell: { 234 "0": { 235 "0": 〈2;#CellValue〉 236 } 237 } 238 cell: { 239 "0": { 240 "0": !=〈2;cell〉["0"]["1"] 241 } 242 } 243 cell: { 244 "0": { 245 "0": !=〈2;cell〉["1"]["0"] 246 } 247 } 248 cell: { 249 "0": { 250 "0": !=〈2;cell〉["1"]["1"] 251 } 252 } 253 cell: { 254 "0": { 255 "1": 〈2;#CellValue〉 256 } 257 } 258 cell: { 259 "0": { 260 "1": !=〈2;cell〉["0"]["0"] 261 } 262 } 263 cell: { 264 "0": { 265 "1": !=〈2;cell〉["1"]["0"] 266 } 267 } 268 cell: { 269 "0": { 270 "1": !=〈2;cell〉["1"]["1"] 271 } 272 } 273 cell: { 274 "1": { 275 "0": 〈2;#CellValue〉 276 } 277 } 278 cell: { 279 "1": { 280 "0": !=〈2;cell〉["0"]["0"] 281 } 282 } 283 cell: { 284 "1": { 285 "0": !=〈2;cell〉["0"]["1"] 286 } 287 } 288 cell: { 289 "1": { 290 "0": !=〈2;cell〉["1"]["1"] 291 } 292 } 293 cell: { 294 "1": { 295 "1": 〈2;#CellValue〉 296 } 297 } 298 cell: { 299 "1": { 300 "1": !=〈2;cell〉["0"]["0"] 301 } 302 } 303 cell: { 304 "1": { 305 "1": !=〈2;cell〉["0"]["1"] 306 } 307 } 308 cell: { 309 "1": { 310 "1": !=〈2;cell〉["1"]["0"] 311 } 312 } 313 cell: { 314 "0": { 315 "0": 0 316 } 317 } 318 cell: { 319 "0": { 320 "1": 1 321 } 322 } 323 cell: { 324 "1": { 325 "0": 2 326 } 327 } 328 cell: { 329 "1": { 330 "1": 3 331 } 332 } 333 cell2: { 334 a: (0|1) 335 } 336 cell2: { 337 a: !=〈1;cell2〉.b 338 } 339 cell2: { 340 b: (0|1) 341 } 342 cell2: { 343 b: !=〈1;cell2〉.a 344 } 345 cell2: { 346 a: _ 347 } 348 cell2: { 349 b: 1 350 } 351 cell3: { 352 a: (0|1) 353 } 354 cell3: { 355 a: !=〈1;cell3〉.b 356 } 357 cell3: { 358 b: (0|1) 359 } 360 cell3: { 361 b: !=〈1;cell3〉.a 362 } 363 cell3: { 364 a: 0 365 } 366 cell3: { 367 b: _ 368 } 369 cell4: { 370 a: (0|1) 371 } 372 cell4: { 373 a: !=〈1;cell4〉.b 374 } 375 cell4: { 376 b: (0|1) 377 } 378 cell4: { 379 b: !=〈1;cell4〉.a 380 } 381 cell4: { 382 b: _ 383 } 384 cell4: { 385 a: 0 386 } 387 cell5: { 388 b: (0|1) 389 } 390 cell5: { 391 b: !=〈1;cell5〉.a 392 } 393 cell5: { 394 a: (0|1) 395 } 396 cell5: { 397 a: !=〈1;cell5〉.b 398 } 399 cell5: { 400 b: _ 401 } 402 cell5: { 403 a: 0 404 } 405 a: 〈0;#CellValue〉 406 a: !=〈0;b〉 407 a: !=〈0;c〉 408 a: !=〈0;d〉 409 b: 〈0;#CellValue〉 410 b: !=〈0;a〉 411 b: !=〈0;c〉 412 b: !=〈0;d〉 413 c: 〈0;#CellValue〉 414 c: !=〈0;a〉 415 c: !=〈0;b〉 416 c: !=〈0;d〉 417 d: 〈0;#CellValue〉 418 d: !=〈0;a〉 419 d: !=〈0;b〉 420 d: !=〈0;c〉 421 a: 0 422 b: 1 423 c: 2 424 d: 3 425 }