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