cuelang.org/go@v0.10.1/cue/testdata/cycle/052_resolved_self-reference_cycles_with_disjunction_with_defaults.txtar (about) 1 # DO NOT EDIT; generated by go run testdata/gen.go 2 # 3 #name: resolved self-reference cycles with disjunction with defaults 4 #evalPartial 5 -- in.cue -- 6 // The disjunction in xa could be resolved, but as disjunctions 7 // are not resolved for expression, it remains unresolved. 8 xa1: (xa2 & 8) | *(xa4 & 9) 9 xa2: xa3 + 2 10 xa3: 6 & xa1-2 11 xa4: xa2 + 2 12 13 xb1: *(xb2 & 8) | (xb4 & 9) 14 xb2: xb3 + 2 15 xb3: *(6 & (xb1 - 2)) | (xb4 & 9) 16 xb4: xb2 + 2 17 18 // Another variant with more disjunctions. xc1 remains with two 19 // possibilities. Technically, only the first value is valid. 20 // However, to fully determine that, all options of the remaining 21 // disjunction will have to be evaluated algebraically, which is 22 // not done. 23 xc1: *(xc2 & 8) | (xc4 & 9) | (xc5 & 9) 24 xc2: xc3 + 2 25 xc3: 6 & xc1-2 26 xc4: xc2 + 1 27 xc5: xc2 + 2 28 29 // The above is resolved by setting xd1 explicitly. 30 xd1: *(xd2 & 8) | xd4 & 9 | xd5 & 9 31 xd2: xd3 + 2 32 xd3: 6 & xd1-2 33 xd4: xd2 + 1 34 xd5: xd2 + 2 35 36 // The above is resolved by setting xd1 explicitly to the wrong 37 // value, resulting in an error. 38 xe1: *(xe2 & 8) | xe4 & 9 | xe5 & 9 39 xe2: xe3 + 2 40 xe3: 6 & xe1-2 41 xe4: xe2 + 1 42 xe5: xe2 + 2 43 xe1: 9 44 45 z1: *(z2 + 1) | z3+5 46 z2: z3 + 2 47 z3: z1 - 3 48 z3: 8 49 -- out/def -- 50 // The disjunction in xa could be resolved, but as disjunctions 51 // are not resolved for expression, it remains unresolved. 52 xa1: 8 53 xa2: 8 54 xa4: 10 55 xa3: 6 56 57 // As xb3 is a disjunction, xb2 cannot be resolved and evaluating 58 // the cycle completely is broken. However, it is not an error 59 // as the user might still resolve the disjunction. 60 xb1: 8 61 xb2: 8 62 xb4: 10 63 xb3: 6 64 65 // Another variant with more disjunctions. xc1 remains with two 66 // possibilities. Technically, only the first value is valid. 67 // However, to fully determine that, all options of the remaining 68 // disjunction will have to be evaluated algebraically, which is 69 // not done. 70 xc1: *8 | 9 | _|_ // conflicting values 10 and 9 71 xc2: 8 72 xc4: 9 73 xc5: 10 74 xc3: 6 75 76 // The above is resolved by setting xd1 explicitly. 77 xd1: *8 | 9 | _|_ // conflicting values 10 and 9 78 xd2: 8 79 xd4: 9 80 xd5: 10 81 xd3: 6 82 83 // The above is resolved by setting xd1 explicitly to the wrong 84 // value, resulting in an error. 85 xe1: _|_ // conflicting values 6 and 7 86 xe2: _|_ // conflicting values 6 and 7 87 xe4: _|_ // conflicting values 6 and 7 88 xe5: _|_ // conflicting values 6 and 7 89 xe3: _|_ // conflicting values 6 and 7 90 z1: *11 | 13 91 z2: 10 92 z3: 8 93 -- out/legacy-debug -- 94 <0>{xa1: 8, xa2: 8, xa4: 10, xa3: 6, xb1: 8, xb2: 8, xb4: 10, xb3: 6, xc1: (*8 | 9), xc2: 8, xc4: 9, xc5: 10, xc3: 6, xd1: (*8 | 9), xd2: 8, xd4: 9, xd5: 10, xd3: 6, xe1: _|_((6 & 7):conflicting values 6 and 7), xe2: _|_((6 & 7):conflicting values 6 and 7), xe4: _|_((6 & 7):conflicting values 6 and 7), xe5: _|_((6 & 7):conflicting values 6 and 7), xe3: _|_((6 & 7):conflicting values 6 and 7), z1: (*11 | 13), z2: 10, z3: 8} 95 -- out/compile -- 96 --- in.cue 97 { 98 xa1: ((〈0;xa2〉 & 8)|*(〈0;xa4〉 & 9)) 99 xa2: (〈0;xa3〉 + 2) 100 xa3: (6 & (〈0;xa1〉 - 2)) 101 xa4: (〈0;xa2〉 + 2) 102 xb1: (*(〈0;xb2〉 & 8)|(〈0;xb4〉 & 9)) 103 xb2: (〈0;xb3〉 + 2) 104 xb3: (*(6 & (〈0;xb1〉 - 2))|(〈0;xb4〉 & 9)) 105 xb4: (〈0;xb2〉 + 2) 106 xc1: (*(〈0;xc2〉 & 8)|(〈0;xc4〉 & 9)|(〈0;xc5〉 & 9)) 107 xc2: (〈0;xc3〉 + 2) 108 xc3: (6 & (〈0;xc1〉 - 2)) 109 xc4: (〈0;xc2〉 + 1) 110 xc5: (〈0;xc2〉 + 2) 111 xd1: (*(〈0;xd2〉 & 8)|(〈0;xd4〉 & 9)|(〈0;xd5〉 & 9)) 112 xd2: (〈0;xd3〉 + 2) 113 xd3: (6 & (〈0;xd1〉 - 2)) 114 xd4: (〈0;xd2〉 + 1) 115 xd5: (〈0;xd2〉 + 2) 116 xe1: (*(〈0;xe2〉 & 8)|(〈0;xe4〉 & 9)|(〈0;xe5〉 & 9)) 117 xe2: (〈0;xe3〉 + 2) 118 xe3: (6 & (〈0;xe1〉 - 2)) 119 xe4: (〈0;xe2〉 + 1) 120 xe5: (〈0;xe2〉 + 2) 121 xe1: 9 122 z1: (*(〈0;z2〉 + 1)|(〈0;z3〉 + 5)) 123 z2: (〈0;z3〉 + 2) 124 z3: (〈0;z1〉 - 3) 125 z3: 8 126 } 127 -- out/eval/stats -- 128 Leaks: 0 129 Freed: 44 130 Reused: 36 131 Allocs: 8 132 Retain: 25 133 134 Unifications: 27 135 Conjuncts: 82 136 Disjuncts: 58 137 -- out/evalalpha -- 138 Errors: 139 xe1: conflicting values 8 and 9: 140 ./in.cue:33:14 141 ./in.cue:38:6 142 143 Result: 144 (_|_){ 145 // [eval] 146 xa1: (int){ 8 } 147 xa2: (int){ 8 } 148 xa3: (int){ 6 } 149 xa4: (int){ 10 } 150 xb1: (int){ 8 } 151 xb2: (int){ 11 } 152 xb3: (int){ 6 } 153 xb4: (int){ 13 } 154 xc1: (int){ |(*(int){ 8 }, (int){ 9 }) } 155 xc2: (int){ 8 } 156 xc3: (int){ 6 } 157 xc4: (int){ 9 } 158 xc5: (int){ 10 } 159 xd1: (int){ |(*(int){ 8 }, (int){ 9 }) } 160 xd2: (int){ 8 } 161 xd3: (int){ 6 } 162 xd4: (int){ 9 } 163 xd5: (int){ 10 } 164 xe1: (_|_){ 165 // [eval] xe1: conflicting values 8 and 9: 166 // ./in.cue:33:14 167 // ./in.cue:38:6 168 } 169 xe2: (_|_){ 170 // [eval] xe1: conflicting values 8 and 9: 171 // ./in.cue:33:14 172 // ./in.cue:38:6 173 } 174 xe3: (_|_){ 175 // [eval] xe1: conflicting values 8 and 9: 176 // ./in.cue:33:14 177 // ./in.cue:38:6 178 } 179 xe4: (_|_){ 180 // [eval] xe1: conflicting values 8 and 9: 181 // ./in.cue:33:14 182 // ./in.cue:38:6 183 } 184 xe5: (_|_){ 185 // [eval] xe1: conflicting values 8 and 9: 186 // ./in.cue:33:14 187 // ./in.cue:38:6 188 } 189 z1: (int){ |(*(int){ 11 }, (int){ 13 }) } 190 z2: (int){ 10 } 191 z3: (int){ 8 } 192 } 193 -- diff/-out/evalalpha<==>+out/eval -- 194 diff old new 195 --- old 196 +++ new 197 @@ -1,7 +1,7 @@ 198 Errors: 199 -xe3: conflicting values 7 and 6: 200 - ./in.cue:35:6 201 - ./in.cue:35:10 202 +xe1: conflicting values 8 and 9: 203 + ./in.cue:33:14 204 + ./in.cue:38:6 205 206 Result: 207 (_|_){ 208 @@ -11,9 +11,9 @@ 209 xa3: (int){ 6 } 210 xa4: (int){ 10 } 211 xb1: (int){ 8 } 212 - xb2: (int){ 8 } 213 - xb3: (int){ |(*(int){ 6 }, (int){ 9 }) } 214 - xb4: (int){ 10 } 215 + xb2: (int){ 11 } 216 + xb3: (int){ 6 } 217 + xb4: (int){ 13 } 218 xc1: (int){ |(*(int){ 8 }, (int){ 9 }) } 219 xc2: (int){ 8 } 220 xc3: (int){ 6 } 221 @@ -24,15 +24,31 @@ 222 xd3: (int){ 6 } 223 xd4: (int){ 9 } 224 xd5: (int){ 10 } 225 - xe1: (int){ 9 } 226 - xe2: (int){ 8 } 227 + xe1: (_|_){ 228 + // [eval] xe1: conflicting values 8 and 9: 229 + // ./in.cue:33:14 230 + // ./in.cue:38:6 231 + } 232 + xe2: (_|_){ 233 + // [eval] xe1: conflicting values 8 and 9: 234 + // ./in.cue:33:14 235 + // ./in.cue:38:6 236 + } 237 xe3: (_|_){ 238 - // [eval] xe3: conflicting values 7 and 6: 239 - // ./in.cue:35:6 240 - // ./in.cue:35:10 241 - } 242 - xe4: (int){ 9 } 243 - xe5: (int){ 10 } 244 + // [eval] xe1: conflicting values 8 and 9: 245 + // ./in.cue:33:14 246 + // ./in.cue:38:6 247 + } 248 + xe4: (_|_){ 249 + // [eval] xe1: conflicting values 8 and 9: 250 + // ./in.cue:33:14 251 + // ./in.cue:38:6 252 + } 253 + xe5: (_|_){ 254 + // [eval] xe1: conflicting values 8 and 9: 255 + // ./in.cue:33:14 256 + // ./in.cue:38:6 257 + } 258 z1: (int){ |(*(int){ 11 }, (int){ 13 }) } 259 z2: (int){ 10 } 260 z3: (int){ 8 } 261 -- diff/todo/p1 -- 262 Verify differences. 263 xb2: Incorrect result. 264 xb4: Incorrect result. This is related to completeNodeTasks. 265 -- out/eval -- 266 Errors: 267 xe3: conflicting values 7 and 6: 268 ./in.cue:35:6 269 ./in.cue:35:10 270 271 Result: 272 (_|_){ 273 // [eval] 274 xa1: (int){ 8 } 275 xa2: (int){ 8 } 276 xa3: (int){ 6 } 277 xa4: (int){ 10 } 278 xb1: (int){ 8 } 279 xb2: (int){ 8 } 280 xb3: (int){ |(*(int){ 6 }, (int){ 9 }) } 281 xb4: (int){ 10 } 282 xc1: (int){ |(*(int){ 8 }, (int){ 9 }) } 283 xc2: (int){ 8 } 284 xc3: (int){ 6 } 285 xc4: (int){ 9 } 286 xc5: (int){ 10 } 287 xd1: (int){ |(*(int){ 8 }, (int){ 9 }) } 288 xd2: (int){ 8 } 289 xd3: (int){ 6 } 290 xd4: (int){ 9 } 291 xd5: (int){ 10 } 292 xe1: (int){ 9 } 293 xe2: (int){ 8 } 294 xe3: (_|_){ 295 // [eval] xe3: conflicting values 7 and 6: 296 // ./in.cue:35:6 297 // ./in.cue:35:10 298 } 299 xe4: (int){ 9 } 300 xe5: (int){ 10 } 301 z1: (int){ |(*(int){ 11 }, (int){ 13 }) } 302 z2: (int){ 10 } 303 z3: (int){ 8 } 304 }