cuelang.org/go@v0.10.1/cue/testdata/resolve/048_builtins.txtar (about) 1 # DO NOT EDIT; generated by go run testdata/gen.go 2 # 3 #name: builtins 4 #evalPartial 5 -- in.cue -- 6 import ( 7 "list" 8 "strings" 9 ) 10 11 a1: { 12 a: and([b, c]) 13 b: =~"oo" 14 c: =~"fo" 15 } 16 a2: a1 & {a: "foo"} 17 a3: a1 & {a: "bar"} 18 19 o1: { 20 a: or([b, c]) 21 b: string 22 c: "bar" 23 } 24 o2: o1 & {a: "foo"} 25 o3: o1 & {a: "foo", b: "baz"} 26 27 // Issue #585 28 stringListErrors: { 29 a: { 30 x: [string, ...string] 31 result: strings.Join(x, " ") 32 } 33 34 b: { 35 x: [int, ...string] 36 result: strings.Join(x, " ") 37 } 38 39 c: { 40 x: [] 41 result: strings.Join(x, int) 42 } 43 } 44 45 decimalListErrors: { 46 a: { 47 x: [string] 48 result: list.Avg(x) 49 } 50 51 b: { 52 x: [int, ...string] 53 result: list.Avg(x) 54 } 55 } 56 -- out/def -- 57 a1: { 58 a: =~"oo" & =~"fo" 59 b: =~"oo" 60 c: =~"fo" 61 } 62 a2: a1 & { 63 a: "foo" 64 } 65 a3: a1 & { 66 a: "bar" 67 } 68 o1: { 69 a: string 70 b: string 71 c: "bar" 72 } 73 o2: o1 & { 74 a: "foo" 75 } 76 o3: o1 & { 77 a: "foo" 78 b: "baz" 79 } 80 -- out/legacy-debug -- 81 <0>{a1: <1>{a: (=~"oo" & =~"fo"), b: =~"oo", c: =~"fo"}, a2: <2>{a: "foo", b: =~"oo", c: =~"fo"}, a3: <3>{a: _|_((=~"oo" & "bar"):invalid value "bar" (does not match =~"oo")), b: =~"oo", c: =~"fo"}, o1: <4>{a: string, b: string, c: "bar"}, o2: <5>{a: "foo", b: string, c: "bar"}, o3: <6>{a: _|_(("baz" & "foo"):empty disjunction: conflicting values "baz" and "foo";("bar" & "foo"):empty disjunction: conflicting values "bar" and "foo"), b: "baz", c: "bar"}} 82 -- out/eval/stats -- 83 Leaks: 6 84 Freed: 61 85 Reused: 53 86 Allocs: 14 87 Retain: 22 88 89 Unifications: 55 90 Conjuncts: 125 91 Disjuncts: 75 92 -- out/evalalpha -- 93 Errors: 94 o3.a: conflicting values "bar" and "foo": 95 ./in.cue:17:5 96 ./in.cue:20:14 97 o3.a: conflicting values "baz" and "foo": 98 ./in.cue:20:14 99 ./in.cue:20:24 100 a3.a: invalid value "bar" (out of bound =~"oo"): 101 ./in.cue:8:5 102 ./in.cue:12:14 103 a3.a: invalid value "bar" (out of bound =~"fo"): 104 ./in.cue:9:5 105 ./in.cue:12:14 106 stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string: 107 ./in.cue:31:11 108 ./in.cue:30:7 109 stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join: 110 ./in.cue:36:27 111 decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number: 112 ./in.cue:43:11 113 ./in.cue:42:7 114 115 Result: 116 (_|_){ 117 // [eval] 118 a1: (struct){ 119 a: (string){ &(=~"oo", =~"fo") } 120 b: (string){ =~"oo" } 121 c: (string){ =~"fo" } 122 } 123 a2: (struct){ 124 a: (string){ "foo" } 125 b: (string){ =~"oo" } 126 c: (string){ =~"fo" } 127 } 128 a3: (_|_){ 129 // [eval] 130 a: (_|_){ 131 // [eval] a3.a: invalid value "bar" (out of bound =~"oo"): 132 // ./in.cue:8:5 133 // ./in.cue:12:14 134 // a3.a: invalid value "bar" (out of bound =~"fo"): 135 // ./in.cue:9:5 136 // ./in.cue:12:14 137 } 138 b: (string){ =~"oo" } 139 c: (string){ =~"fo" } 140 } 141 o1: (struct){ 142 a: (string){ |((string){ string }, (string){ "bar" }) } 143 b: (string){ string } 144 c: (string){ "bar" } 145 } 146 o2: (struct){ 147 a: (string){ "foo" } 148 b: (string){ string } 149 c: (string){ "bar" } 150 } 151 o3: (_|_){ 152 // [eval] 153 a: (_|_){ 154 // [eval] o3.a: conflicting values "bar" and "foo": 155 // ./in.cue:17:5 156 // ./in.cue:20:14 157 // o3.a: conflicting values "baz" and "foo": 158 // ./in.cue:20:14 159 // ./in.cue:20:24 160 } 161 b: (string){ "baz" } 162 c: (string){ "bar" } 163 } 164 stringListErrors: (_|_){ 165 // [eval] 166 a: (struct){ 167 x: (list){ 168 0: (string){ string } 169 } 170 result: (_|_){ 171 // [incomplete] stringListErrors.a.result: non-concrete value string for element 0 of string list argument 0: 172 // ./in.cue:26:11 173 // ./in.cue:25:7 174 } 175 } 176 b: (_|_){ 177 // [eval] 178 x: (list){ 179 0: (int){ int } 180 } 181 result: (_|_){ 182 // [eval] stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string: 183 // ./in.cue:31:11 184 // ./in.cue:30:7 185 } 186 } 187 c: (_|_){ 188 // [eval] 189 x: (#list){ 190 } 191 result: (_|_){ 192 // [eval] stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join: 193 // ./in.cue:36:27 194 } 195 } 196 } 197 decimalListErrors: (_|_){ 198 // [eval] 199 a: (_|_){ 200 // [eval] 201 x: (#list){ 202 0: (string){ string } 203 } 204 result: (_|_){ 205 // [eval] decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number: 206 // ./in.cue:43:11 207 // ./in.cue:42:7 208 } 209 } 210 b: (struct){ 211 x: (list){ 212 0: (int){ int } 213 } 214 result: (_|_){ 215 // [incomplete] decimalListErrors.b.result: non-concrete value int for element 0 of number list argument 0: 216 // ./in.cue:48:11 217 // ./in.cue:47:7 218 } 219 } 220 } 221 } 222 -- diff/-out/evalalpha<==>+out/eval -- 223 diff old new 224 --- old 225 +++ new 226 @@ -1,22 +1,15 @@ 227 Errors: 228 -o3.a: 2 errors in empty disjunction: 229 o3.a: conflicting values "bar" and "foo": 230 - ./in.cue:15:12 231 ./in.cue:17:5 232 - ./in.cue:20:5 233 ./in.cue:20:14 234 o3.a: conflicting values "baz" and "foo": 235 - ./in.cue:15:9 236 - ./in.cue:20:5 237 ./in.cue:20:14 238 ./in.cue:20:24 239 a3.a: invalid value "bar" (out of bound =~"oo"): 240 ./in.cue:8:5 241 - ./in.cue:7:5 242 ./in.cue:12:14 243 a3.a: invalid value "bar" (out of bound =~"fo"): 244 ./in.cue:9:5 245 - ./in.cue:7:5 246 ./in.cue:12:14 247 stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string: 248 ./in.cue:31:11 249 @@ -45,11 +38,9 @@ 250 a: (_|_){ 251 // [eval] a3.a: invalid value "bar" (out of bound =~"oo"): 252 // ./in.cue:8:5 253 - // ./in.cue:7:5 254 // ./in.cue:12:14 255 // a3.a: invalid value "bar" (out of bound =~"fo"): 256 // ./in.cue:9:5 257 - // ./in.cue:7:5 258 // ./in.cue:12:14 259 } 260 b: (string){ =~"oo" } 261 @@ -68,15 +59,10 @@ 262 o3: (_|_){ 263 // [eval] 264 a: (_|_){ 265 - // [eval] o3.a: 2 errors in empty disjunction: 266 - // o3.a: conflicting values "bar" and "foo": 267 - // ./in.cue:15:12 268 + // [eval] o3.a: conflicting values "bar" and "foo": 269 // ./in.cue:17:5 270 - // ./in.cue:20:5 271 // ./in.cue:20:14 272 // o3.a: conflicting values "baz" and "foo": 273 - // ./in.cue:15:9 274 - // ./in.cue:20:5 275 // ./in.cue:20:14 276 // ./in.cue:20:24 277 } 278 -- diff/todo/p2 -- 279 Missing "empty disjunction" message. 280 Missing error positions. 281 -- out/eval -- 282 Errors: 283 o3.a: 2 errors in empty disjunction: 284 o3.a: conflicting values "bar" and "foo": 285 ./in.cue:15:12 286 ./in.cue:17:5 287 ./in.cue:20:5 288 ./in.cue:20:14 289 o3.a: conflicting values "baz" and "foo": 290 ./in.cue:15:9 291 ./in.cue:20:5 292 ./in.cue:20:14 293 ./in.cue:20:24 294 a3.a: invalid value "bar" (out of bound =~"oo"): 295 ./in.cue:8:5 296 ./in.cue:7:5 297 ./in.cue:12:14 298 a3.a: invalid value "bar" (out of bound =~"fo"): 299 ./in.cue:9:5 300 ./in.cue:7:5 301 ./in.cue:12:14 302 stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string: 303 ./in.cue:31:11 304 ./in.cue:30:7 305 stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join: 306 ./in.cue:36:27 307 decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number: 308 ./in.cue:43:11 309 ./in.cue:42:7 310 311 Result: 312 (_|_){ 313 // [eval] 314 a1: (struct){ 315 a: (string){ &(=~"oo", =~"fo") } 316 b: (string){ =~"oo" } 317 c: (string){ =~"fo" } 318 } 319 a2: (struct){ 320 a: (string){ "foo" } 321 b: (string){ =~"oo" } 322 c: (string){ =~"fo" } 323 } 324 a3: (_|_){ 325 // [eval] 326 a: (_|_){ 327 // [eval] a3.a: invalid value "bar" (out of bound =~"oo"): 328 // ./in.cue:8:5 329 // ./in.cue:7:5 330 // ./in.cue:12:14 331 // a3.a: invalid value "bar" (out of bound =~"fo"): 332 // ./in.cue:9:5 333 // ./in.cue:7:5 334 // ./in.cue:12:14 335 } 336 b: (string){ =~"oo" } 337 c: (string){ =~"fo" } 338 } 339 o1: (struct){ 340 a: (string){ |((string){ string }, (string){ "bar" }) } 341 b: (string){ string } 342 c: (string){ "bar" } 343 } 344 o2: (struct){ 345 a: (string){ "foo" } 346 b: (string){ string } 347 c: (string){ "bar" } 348 } 349 o3: (_|_){ 350 // [eval] 351 a: (_|_){ 352 // [eval] o3.a: 2 errors in empty disjunction: 353 // o3.a: conflicting values "bar" and "foo": 354 // ./in.cue:15:12 355 // ./in.cue:17:5 356 // ./in.cue:20:5 357 // ./in.cue:20:14 358 // o3.a: conflicting values "baz" and "foo": 359 // ./in.cue:15:9 360 // ./in.cue:20:5 361 // ./in.cue:20:14 362 // ./in.cue:20:24 363 } 364 b: (string){ "baz" } 365 c: (string){ "bar" } 366 } 367 stringListErrors: (_|_){ 368 // [eval] 369 a: (struct){ 370 x: (list){ 371 0: (string){ string } 372 } 373 result: (_|_){ 374 // [incomplete] stringListErrors.a.result: non-concrete value string for element 0 of string list argument 0: 375 // ./in.cue:26:11 376 // ./in.cue:25:7 377 } 378 } 379 b: (_|_){ 380 // [eval] 381 x: (list){ 382 0: (int){ int } 383 } 384 result: (_|_){ 385 // [eval] stringListErrors.b.result: invalid list element 0 in argument 0 to call: cannot use value int (int) as string: 386 // ./in.cue:31:11 387 // ./in.cue:30:7 388 } 389 } 390 c: (_|_){ 391 // [eval] 392 x: (#list){ 393 } 394 result: (_|_){ 395 // [eval] stringListErrors.c.result: cannot use int (type int) as string in argument 2 to strings.Join: 396 // ./in.cue:36:27 397 } 398 } 399 } 400 decimalListErrors: (_|_){ 401 // [eval] 402 a: (_|_){ 403 // [eval] 404 x: (#list){ 405 0: (string){ string } 406 } 407 result: (_|_){ 408 // [eval] decimalListErrors.a.result: invalid list element 0 in argument 0 to call: cannot use value string (string) as number: 409 // ./in.cue:43:11 410 // ./in.cue:42:7 411 } 412 } 413 b: (struct){ 414 x: (list){ 415 0: (int){ int } 416 } 417 result: (_|_){ 418 // [incomplete] decimalListErrors.b.result: non-concrete value int for element 0 of number list argument 0: 419 // ./in.cue:48:11 420 // ./in.cue:47:7 421 } 422 } 423 } 424 } 425 -- out/compile -- 426 --- in.cue 427 { 428 a1: { 429 a: and([ 430 〈1;b〉, 431 〈1;c〉, 432 ]) 433 b: =~"oo" 434 c: =~"fo" 435 } 436 a2: (〈0;a1〉 & { 437 a: "foo" 438 }) 439 a3: (〈0;a1〉 & { 440 a: "bar" 441 }) 442 o1: { 443 a: or([ 444 〈1;b〉, 445 〈1;c〉, 446 ]) 447 b: string 448 c: "bar" 449 } 450 o2: (〈0;o1〉 & { 451 a: "foo" 452 }) 453 o3: (〈0;o1〉 & { 454 a: "foo" 455 b: "baz" 456 }) 457 stringListErrors: { 458 a: { 459 x: [ 460 string, 461 ...string, 462 ] 463 result: 〈import;strings〉.Join(〈0;x〉, " ") 464 } 465 b: { 466 x: [ 467 int, 468 ...string, 469 ] 470 result: 〈import;strings〉.Join(〈0;x〉, " ") 471 } 472 c: { 473 x: [] 474 result: 〈import;strings〉.Join(〈0;x〉, int) 475 } 476 } 477 decimalListErrors: { 478 a: { 479 x: [ 480 string, 481 ] 482 result: 〈import;list〉.Avg(〈0;x〉) 483 } 484 b: { 485 x: [ 486 int, 487 ...string, 488 ] 489 result: 〈import;list〉.Avg(〈0;x〉) 490 } 491 } 492 }