1# DO NOT EDIT; generated by go run testdata/gen.go
2#
3#name: bounds
4#evalPartial
5-- in.cue --
6i1: >1 & 5
7i2: (>=0 & <=10) & 5
8i3: !=null & []
9i4: !=2 & !=4
10
11s1: >=0 & <=10 & !=1 // no simplification
12s2: >=0 & <=10 & !=11 // >=0 & <=10
13s3: >5 & !=5 // >5
14s4: <10 & !=10 // <10
15s5: !=2 & !=2
16
17// TODO: could change inequality
18s6: !=2 & >=2
19s7: >=2 & !=2
20
21s8: !=5 & >5
22
23s10: >=0 & <=10 & <12 & >1 // >1 & <=10
24s11: >0 & >=0 & <=12 & <12 // >0 & <12
25
26s20: >=10 & <=10 // 10
27
28s22: >5 & <=6 // no simplification
29s22a: >5 & (<=6 & int) // 6
30s22b: (int & >5) & <=6 // 6
31s22c: >=5 & (<6 & int) // 5
32s22d: (int & >=5) & <6 // 5
33s22e: (>=5 & <6) & int // 5
34s22f: int & (>=5 & <6) // 5
35
36s23: >0 & <2 // no simplification
37s23a: (>0 & <2) & int // int & 1
38s23b: int & (>0 & <2) // int & 1
39s23c: (int & >0) & <2 // int & 1
40s23d: >0 & (int & <2) // int & 1
41s23e: >0.0 & <2.0 // no simplification
42
43s30: >0 & int
44
45floats: {
46 [string]: float
47 f1: <10.0 & <=5.0
48 f2: <=10.0 & <5.0
49 f3: <1.1 & <=1.1
50 f4: <=1.1 & <=1.1
51 f5: >1.1 & >=1.1
52 f6: >=1.1 & >1.1
53 f7: >=1.1 & <=1.1
54
55 issue1310: >=2.1 & <=1.0
56 fe2: >2.1 & <=2.1
57
58 fe3: float & >2 & <=3
59}
60
61e1: null & !=null
62e2: !=null & null
63e3: >1 & 1
64e4: <0 & 0
65e5: >1 & <0
66e6: >11 & <11
67e7: >=11 & <11
68e8: >11 & <=11
69e9: >"a" & <1
70-- out/def --
71i1: 5
72i2: 5
73i3: []
74i4: !=2 & !=4
75s1: >=0 & <=10 & !=1
76s2: >=0 & <=10
77s3: >5
78s4: <10
79s5: !=2
80
81// TODO: could change inequality
82s6: !=2
83s7: !=2
84s8: >5
85s10: >1 & <=10
86s11: >0 & <12
87s20: 10
88s22: >5 & <=6
89s22a: 6
90s22b: 6
91s22c: 5
92s22d: 5
93s22e: 5
94s22f: 5
95s23: >0 & <2
96s23a: 1
97s23b: 1
98s23c: 1
99s23d: 1
100s23e: >0.0 & <2.0
101s30: >0
102e1: _|_ // invalid value null (excluded by !=null)
103e2: _|_ // invalid value null (excluded by !=null)
104e3: _|_ // invalid value 1 (out of bound >1)
105e4: _|_ // invalid value 0 (out of bound <0)
106e5: _|_ // conflicting bounds >1 and <0
107e6: _|_ // conflicting bounds >11 and <11
108e7: _|_ // conflicting bounds >=11 and <11
109e8: _|_ // conflicting bounds >11 and <=11
110e9: _|_ // conflicting values >"a" and <1 (mismatched types string and number)
111-- out/legacy-debug --
112<0>{i1: 5, i2: 5, i3: [], i4: (!=2 & !=4), s1: (>=0 & <=10 & !=1), s2: (>=0 & <=10), s3: >5, s4: <10, s5: !=2, s6: (!=2 & >=2), s7: (>=2 & !=2), s8: >5, s10: (<=10 & >1), s11: (>0 & <12), s20: 10, s22: (>5 & <=6), s22a: 6, s22b: 6, s22c: 5, s22d: 5, s22e: 5, s22f: 5, s23: (>0 & <2), s23a: 1, s23b: 1, s23c: 1, s23d: 1, s23e: (>0.0 & <2.0), s30: int & >0, e1: _|_((!=null & null):invalid value null (excluded by !=null)), e2: _|_((!=null & null):invalid value null (excluded by !=null)), e3: _|_((>1 & 1):invalid value 1 (out of bound >1)), e4: _|_((<0 & 0):invalid value 0 (out of bound <0)), e5: _|_(conflicting bounds >1 and <0), e6: _|_(conflicting bounds >11 and <11), e7: _|_(conflicting bounds >=11 and <11), e8: _|_(conflicting bounds >11 and <=11), e9: _|_((>"a" & <1):conflicting values >"a" and <1 (mismatched types string and number))}
113-- out/compile --
114--- in.cue
115{
116 i1: (>1 & 5)
117 i2: ((>=0 & <=10) & 5)
118 i3: (!=null & [])
119 i4: (!=2 & !=4)
120 s1: ((>=0 & <=10) & !=1)
121 s2: ((>=0 & <=10) & !=11)
122 s3: (>5 & !=5)
123 s4: (<10 & !=10)
124 s5: (!=2 & !=2)
125 s6: (!=2 & >=2)
126 s7: (>=2 & !=2)
127 s8: (!=5 & >5)
128 s10: (((>=0 & <=10) & <12) & >1)
129 s11: (((>0 & >=0) & <=12) & <12)
130 s20: (>=10 & <=10)
131 s22: (>5 & <=6)
132 s22a: (>5 & (<=6 & int))
133 s22b: ((int & >5) & <=6)
134 s22c: (>=5 & (<6 & int))
135 s22d: ((int & >=5) & <6)
136 s22e: ((>=5 & <6) & int)
137 s22f: (int & (>=5 & <6))
138 s23: (>0 & <2)
139 s23a: ((>0 & <2) & int)
140 s23b: (int & (>0 & <2))
141 s23c: ((int & >0) & <2)
142 s23d: (>0 & (int & <2))
143 s23e: (>0.0 & <2.0)
144 s30: (>0 & int)
145 floats: {
146 [string]: float
147 f1: (<10.0 & <=5.0)
148 f2: (<=10.0 & <5.0)
149 f3: (<1.1 & <=1.1)
150 f4: (<=1.1 & <=1.1)
151 f5: (>1.1 & >=1.1)
152 f6: (>=1.1 & >1.1)
153 f7: (>=1.1 & <=1.1)
154 issue1310: (>=2.1 & <=1.0)
155 fe2: (>2.1 & <=2.1)
156 fe3: ((float & >2) & <=3)
157 }
158 e1: (null & !=null)
159 e2: (!=null & null)
160 e3: (>1 & 1)
161 e4: (<0 & 0)
162 e5: (>1 & <0)
163 e6: (>11 & <11)
164 e7: (>=11 & <11)
165 e8: (>11 & <=11)
166 e9: (>"a" & <1)
167}
168-- out/eval/stats --
169Leaks: 0
170Freed: 50
171Reused: 47
172Allocs: 3
173Retain: 0
174
175Unifications: 50
176Conjuncts: 126
177Disjuncts: 50
178-- out/evalalpha --
179Errors:
180e1: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
181 ./in.cue:56:5
182 ./in.cue:56:12
183e2: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
184 ./in.cue:57:5
185 ./in.cue:57:14
186e9: conflicting values >"a" and <1 (mismatched types string and number):
187 ./in.cue:64:5
188 ./in.cue:64:12
189floats.issue1310: incompatible bounds >=2.1 and <=1.0:
190 ./in.cue:50:21
191 ./in.cue:50:13
192floats.fe2: incompatible bounds >2.1 and <=2.1:
193 ./in.cue:51:20
194 ./in.cue:51:13
195e3: invalid value 1 (out of bound >1):
196 ./in.cue:58:5
197 ./in.cue:58:10
198e4: invalid value 0 (out of bound <0):
199 ./in.cue:59:5
200 ./in.cue:59:10
201e5: incompatible bounds >1 and <0:
202 ./in.cue:60:10
203 ./in.cue:60:5
204e6: incompatible bounds >11 and <11:
205 ./in.cue:61:11
206 ./in.cue:61:5
207e7: incompatible bounds >=11 and <11:
208 ./in.cue:62:12
209 ./in.cue:62:5
210e8: incompatible bounds >11 and <=11:
211 ./in.cue:63:11
212 ./in.cue:63:5
213
214Result:
215(_|_){
216 // [eval]
217 i1: (int){ 5 }
218 i2: (int){ 5 }
219 i3: (#list){
220 }
221 i4: (number){ &(!=2, !=4) }
222 s1: (number){ &(>=0, <=10, !=1) }
223 s2: (number){ &(>=0, <=10) }
224 s3: (number){ >5 }
225 s4: (number){ <10 }
226 s5: (number){ !=2 }
227 s6: (number){ &(>=2, !=2) }
228 s7: (number){ &(>=2, !=2) }
229 s8: (number){ >5 }
230 s10: (number){ &(>1, <=10) }
231 s11: (number){ &(>0, <12) }
232 s20: (number){ 10 }
233 s22: (number){ &(>5, <=6) }
234 s22a: (int){ 6 }
235 s22b: (int){ 6 }
236 s22c: (int){ 5 }
237 s22d: (int){ 5 }
238 s22e: (int){ 5 }
239 s22f: (int){ 5 }
240 s23: (number){ &(>0, <2) }
241 s23a: (int){ 1 }
242 s23b: (int){ 1 }
243 s23c: (int){ 1 }
244 s23d: (int){ 1 }
245 s23e: (number){ &(>0.0, <2.0) }
246 s30: (int){ &(>0, int) }
247 floats: (_|_){
248 // [eval]
249 f1: (float){ &(<=5.0, float) }
250 f2: (float){ &(<5.0, float) }
251 f3: (float){ &(<1.1, float) }
252 f4: (float){ &(<=1.1, float) }
253 f5: (float){ &(>1.1, float) }
254 f6: (float){ &(>1.1, float) }
255 f7: (float){ 1.1 }
256 issue1310: (_|_){
257 // [eval] floats.issue1310: incompatible bounds >=2.1 and <=1.0:
258 // ./in.cue:50:21
259 // ./in.cue:50:13
260 }
261 fe2: (_|_){
262 // [eval] floats.fe2: incompatible bounds >2.1 and <=2.1:
263 // ./in.cue:51:20
264 // ./in.cue:51:13
265 }
266 fe3: (float){ &(>2, <=3, float) }
267 }
268 e1: (_|_){
269 // [eval] e1: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
270 // ./in.cue:56:5
271 // ./in.cue:56:12
272 }
273 e2: (_|_){
274 // [eval] e2: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
275 // ./in.cue:57:5
276 // ./in.cue:57:14
277 }
278 e3: (_|_){
279 // [eval] e3: invalid value 1 (out of bound >1):
280 // ./in.cue:58:5
281 // ./in.cue:58:10
282 }
283 e4: (_|_){
284 // [eval] e4: invalid value 0 (out of bound <0):
285 // ./in.cue:59:5
286 // ./in.cue:59:10
287 }
288 e5: (_|_){
289 // [eval] e5: incompatible bounds >1 and <0:
290 // ./in.cue:60:10
291 // ./in.cue:60:5
292 }
293 e6: (_|_){
294 // [eval] e6: incompatible bounds >11 and <11:
295 // ./in.cue:61:11
296 // ./in.cue:61:5
297 }
298 e7: (_|_){
299 // [eval] e7: incompatible bounds >=11 and <11:
300 // ./in.cue:62:12
301 // ./in.cue:62:5
302 }
303 e8: (_|_){
304 // [eval] e8: incompatible bounds >11 and <=11:
305 // ./in.cue:63:11
306 // ./in.cue:63:5
307 }
308 e9: (_|_){
309 // [eval] e9: conflicting values >"a" and <1 (mismatched types string and number):
310 // ./in.cue:64:5
311 // ./in.cue:64:12
312 }
313}
314-- diff/-out/evalalpha<==>+out/eval --
315diff old new
316--- old
317+++ new
318@@ -2,30 +2,18 @@
319 e1: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
320 ./in.cue:56:5
321 ./in.cue:56:12
322-e2: conflicting values !=null and null (mismatched types (bool|string|bytes|func|list|struct|number) and null):
323+e2: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
324 ./in.cue:57:5
325 ./in.cue:57:14
326-e5: incompatible bounds >1 and <0:
327- ./in.cue:60:5
328- ./in.cue:60:10
329-e6: incompatible bounds >11 and <11:
330- ./in.cue:61:5
331- ./in.cue:61:11
332-e7: incompatible bounds >=11 and <11:
333- ./in.cue:62:5
334- ./in.cue:62:12
335-e8: incompatible bounds >11 and <=11:
336- ./in.cue:63:5
337- ./in.cue:63:11
338 e9: conflicting values >"a" and <1 (mismatched types string and number):
339 ./in.cue:64:5
340 ./in.cue:64:12
341-floats.fe2: incompatible bounds >2.1 and <=2.1:
342- ./in.cue:51:13
343- ./in.cue:51:20
344 floats.issue1310: incompatible bounds >=2.1 and <=1.0:
345- ./in.cue:50:13
346 ./in.cue:50:21
347+ ./in.cue:50:13
348+floats.fe2: incompatible bounds >2.1 and <=2.1:
349+ ./in.cue:51:20
350+ ./in.cue:51:13
351 e3: invalid value 1 (out of bound >1):
352 ./in.cue:58:5
353 ./in.cue:58:10
354@@ -32,6 +20,18 @@
355 e4: invalid value 0 (out of bound <0):
356 ./in.cue:59:5
357 ./in.cue:59:10
358+e5: incompatible bounds >1 and <0:
359+ ./in.cue:60:10
360+ ./in.cue:60:5
361+e6: incompatible bounds >11 and <11:
362+ ./in.cue:61:11
363+ ./in.cue:61:5
364+e7: incompatible bounds >=11 and <11:
365+ ./in.cue:62:12
366+ ./in.cue:62:5
367+e8: incompatible bounds >11 and <=11:
368+ ./in.cue:63:11
369+ ./in.cue:63:5
370
371 Result:
372 (_|_){
373@@ -74,16 +74,16 @@
374 f4: (float){ &(<=1.1, float) }
375 f5: (float){ &(>1.1, float) }
376 f6: (float){ &(>1.1, float) }
377- f7: (number){ 1.1 }
378+ f7: (float){ 1.1 }
379 issue1310: (_|_){
380 // [eval] floats.issue1310: incompatible bounds >=2.1 and <=1.0:
381- // ./in.cue:50:13
382 // ./in.cue:50:21
383+ // ./in.cue:50:13
384 }
385 fe2: (_|_){
386 // [eval] floats.fe2: incompatible bounds >2.1 and <=2.1:
387- // ./in.cue:51:13
388 // ./in.cue:51:20
389+ // ./in.cue:51:13
390 }
391 fe3: (float){ &(>2, <=3, float) }
392 }
393@@ -93,7 +93,7 @@
394 // ./in.cue:56:12
395 }
396 e2: (_|_){
397- // [eval] e2: conflicting values !=null and null (mismatched types (bool|string|bytes|func|list|struct|number) and null):
398+ // [eval] e2: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
399 // ./in.cue:57:5
400 // ./in.cue:57:14
401 }
402@@ -109,23 +109,23 @@
403 }
404 e5: (_|_){
405 // [eval] e5: incompatible bounds >1 and <0:
406- // ./in.cue:60:5
407 // ./in.cue:60:10
408+ // ./in.cue:60:5
409 }
410 e6: (_|_){
411 // [eval] e6: incompatible bounds >11 and <11:
412- // ./in.cue:61:5
413 // ./in.cue:61:11
414+ // ./in.cue:61:5
415 }
416 e7: (_|_){
417 // [eval] e7: incompatible bounds >=11 and <11:
418- // ./in.cue:62:5
419 // ./in.cue:62:12
420+ // ./in.cue:62:5
421 }
422 e8: (_|_){
423 // [eval] e8: incompatible bounds >11 and <=11:
424- // ./in.cue:63:5
425 // ./in.cue:63:11
426+ // ./in.cue:63:5
427 }
428 e9: (_|_){
429 // [eval] e9: conflicting values >"a" and <1 (mismatched types string and number):
430-- diff/todo/p3 --
431Reordering
432-- diff/explanation --
433f7 changed from number to float. This is a bug fix.
434-- out/eval --
435Errors:
436e1: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
437 ./in.cue:56:5
438 ./in.cue:56:12
439e2: conflicting values !=null and null (mismatched types (bool|string|bytes|func|list|struct|number) and null):
440 ./in.cue:57:5
441 ./in.cue:57:14
442e5: incompatible bounds >1 and <0:
443 ./in.cue:60:5
444 ./in.cue:60:10
445e6: incompatible bounds >11 and <11:
446 ./in.cue:61:5
447 ./in.cue:61:11
448e7: incompatible bounds >=11 and <11:
449 ./in.cue:62:5
450 ./in.cue:62:12
451e8: incompatible bounds >11 and <=11:
452 ./in.cue:63:5
453 ./in.cue:63:11
454e9: conflicting values >"a" and <1 (mismatched types string and number):
455 ./in.cue:64:5
456 ./in.cue:64:12
457floats.fe2: incompatible bounds >2.1 and <=2.1:
458 ./in.cue:51:13
459 ./in.cue:51:20
460floats.issue1310: incompatible bounds >=2.1 and <=1.0:
461 ./in.cue:50:13
462 ./in.cue:50:21
463e3: invalid value 1 (out of bound >1):
464 ./in.cue:58:5
465 ./in.cue:58:10
466e4: invalid value 0 (out of bound <0):
467 ./in.cue:59:5
468 ./in.cue:59:10
469
470Result:
471(_|_){
472 // [eval]
473 i1: (int){ 5 }
474 i2: (int){ 5 }
475 i3: (#list){
476 }
477 i4: (number){ &(!=2, !=4) }
478 s1: (number){ &(>=0, <=10, !=1) }
479 s2: (number){ &(>=0, <=10) }
480 s3: (number){ >5 }
481 s4: (number){ <10 }
482 s5: (number){ !=2 }
483 s6: (number){ &(>=2, !=2) }
484 s7: (number){ &(>=2, !=2) }
485 s8: (number){ >5 }
486 s10: (number){ &(>1, <=10) }
487 s11: (number){ &(>0, <12) }
488 s20: (number){ 10 }
489 s22: (number){ &(>5, <=6) }
490 s22a: (int){ 6 }
491 s22b: (int){ 6 }
492 s22c: (int){ 5 }
493 s22d: (int){ 5 }
494 s22e: (int){ 5 }
495 s22f: (int){ 5 }
496 s23: (number){ &(>0, <2) }
497 s23a: (int){ 1 }
498 s23b: (int){ 1 }
499 s23c: (int){ 1 }
500 s23d: (int){ 1 }
501 s23e: (number){ &(>0.0, <2.0) }
502 s30: (int){ &(>0, int) }
503 floats: (_|_){
504 // [eval]
505 f1: (float){ &(<=5.0, float) }
506 f2: (float){ &(<5.0, float) }
507 f3: (float){ &(<1.1, float) }
508 f4: (float){ &(<=1.1, float) }
509 f5: (float){ &(>1.1, float) }
510 f6: (float){ &(>1.1, float) }
511 f7: (number){ 1.1 }
512 issue1310: (_|_){
513 // [eval] floats.issue1310: incompatible bounds >=2.1 and <=1.0:
514 // ./in.cue:50:13
515 // ./in.cue:50:21
516 }
517 fe2: (_|_){
518 // [eval] floats.fe2: incompatible bounds >2.1 and <=2.1:
519 // ./in.cue:51:13
520 // ./in.cue:51:20
521 }
522 fe3: (float){ &(>2, <=3, float) }
523 }
524 e1: (_|_){
525 // [eval] e1: conflicting values null and !=null (mismatched types null and (bool|string|bytes|func|list|struct|number)):
526 // ./in.cue:56:5
527 // ./in.cue:56:12
528 }
529 e2: (_|_){
530 // [eval] e2: conflicting values !=null and null (mismatched types (bool|string|bytes|func|list|struct|number) and null):
531 // ./in.cue:57:5
532 // ./in.cue:57:14
533 }
534 e3: (_|_){
535 // [eval] e3: invalid value 1 (out of bound >1):
536 // ./in.cue:58:5
537 // ./in.cue:58:10
538 }
539 e4: (_|_){
540 // [eval] e4: invalid value 0 (out of bound <0):
541 // ./in.cue:59:5
542 // ./in.cue:59:10
543 }
544 e5: (_|_){
545 // [eval] e5: incompatible bounds >1 and <0:
546 // ./in.cue:60:5
547 // ./in.cue:60:10
548 }
549 e6: (_|_){
550 // [eval] e6: incompatible bounds >11 and <11:
551 // ./in.cue:61:5
552 // ./in.cue:61:11
553 }
554 e7: (_|_){
555 // [eval] e7: incompatible bounds >=11 and <11:
556 // ./in.cue:62:5
557 // ./in.cue:62:12
558 }
559 e8: (_|_){
560 // [eval] e8: incompatible bounds >11 and <=11:
561 // ./in.cue:63:5
562 // ./in.cue:63:11
563 }
564 e9: (_|_){
565 // [eval] e9: conflicting values >"a" and <1 (mismatched types string and number):
566 // ./in.cue:64:5
567 // ./in.cue:64:12
568 }
569}
View as plain text