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