cuelang.org/go@v0.13.0/cue/testdata/basicrewrite/014_disjunctions.txtar (about) 1 #name: disjunctions 2 #evalPartial 3 -- in.cue -- 4 o1: 1 | 2 | 3 5 o2: (1 | 2 | 3) & 1 6 o3: 2 & (1 | *2 | 3) 7 o4: (1 | *2 | 3) & (1 | 2 | *3) 8 o5: (1 | *2 | 3) & (3 | *2 | 1) 9 o6: (1 | 2 | 3) & (3 | 1 | 2) 10 o7: (1 | 2 | 3) & (2 | 3) 11 o8: (1 | 2 | 3) & (3 | 2) 12 o9: (2 | 3) & (1 | 2 | 3) 13 o10: (3 | 2) & (1 | *2 | 3) 14 15 m1: (1 | (*2 | 3)) & (>=2 & <=3) 16 m2: (1 | (*2 | 3)) & (2 | 3) 17 m3: (*1 | *(*2 | 3)) & (2 | 3) 18 m4: (2 | 3) & (*2 | 3) 19 m5: (*2 | 3) & (2 | 3) 20 21 // (*2 | 3) & (2 | 3) 22 // (2 | 3) & (*2 | 3) 23 // 2&(*2 | 3) | 3&(*2 | 3) 24 // (*1 | (*2 | 3)) & (2 | 3) 25 // *1& (2 | 3) | (*2 | 3)&(2 | 3) 26 // *2&(2 | 3) | 3&(2 | 3) 27 28 // (2 | 3)&(*1 | (*2 | 3)) 29 // 2&(*1 | (*2 | 3)) | 3&(*1 | (*2 | 3)) 30 // *1&2 | (*2 | 3)&2 | *1&3 | (*2 | 3)&3 31 // (*2 | 3)&2 | (*2 | 3)&3 32 // *2 | 3 33 34 // All errors are treated the same as per the unification model. 35 i1: [1, 2][3] | "c" 36 -- out/def -- 37 o1: 1 | 2 | 3 38 o2: 1 39 o3: 2 40 o4: 1 | 2 | 3 | *_|_ 41 o5: 1 | *2 | 3 42 o6: 1 | 2 | 3 43 o7: 2 | 3 44 o8: 2 | 3 45 o9: 2 | 3 46 o10: 3 | *2 47 m1: *2 | 3 48 m2: *2 | 3 49 m3: *2 | 3 50 m4: *2 | 3 51 m5: *2 | 3 52 53 // All errors are treated the same as per the unification model. 54 i1: "c" 55 -- out/legacy-debug -- 56 <0>{o1: (1 | 2 | 3), o2: 1, o3: 2, o4: (1 | 2 | 3 | *_|_), o5: (1 | *2 | 3), o6: (1 | 2 | 3), o7: (2 | 3), o8: (2 | 3), o9: (2 | 3), o10: (3 | *2), m1: (*2 | 3), m2: (*2 | 3), m3: (*2 | 3), m4: (*2 | 3), m5: (*2 | 3), i1: "c"} 57 -- out/compile -- 58 --- in.cue 59 { 60 o1: (1|2|3) 61 o2: ((1|2|3) & 1) 62 o3: (2 & (1|*2|3)) 63 o4: ((1|*2|3) & (1|2|*3)) 64 o5: ((1|*2|3) & (3|*2|1)) 65 o6: ((1|2|3) & (3|1|2)) 66 o7: ((1|2|3) & (2|3)) 67 o8: ((1|2|3) & (3|2)) 68 o9: ((2|3) & (1|2|3)) 69 o10: ((3|2) & (1|*2|3)) 70 m1: ((1|(*2|3)) & (>=2 & <=3)) 71 m2: ((1|(*2|3)) & (2|3)) 72 m3: ((*1|*(*2|3)) & (2|3)) 73 m4: ((2|3) & (*2|3)) 74 m5: ((*2|3) & (2|3)) 75 i1: ([ 76 1, 77 2, 78 ][3]|"c") 79 } 80 -- out/eval/stats -- 81 Leaks: 1 82 Freed: 134 83 Reused: 126 84 Allocs: 9 85 Retain: 1 86 87 Unifications: 18 88 Conjuncts: 150 89 Disjuncts: 135 90 -- out/eval -- 91 (struct){ 92 o1: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) } 93 o2: (int){ 1 } 94 o3: (int){ 2 } 95 o4: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) } 96 o5: (int){ |(*(int){ 2 }, (int){ 1 }, (int){ 3 }) } 97 o6: (int){ |((int){ 1 }, (int){ 2 }, (int){ 3 }) } 98 o7: (int){ |((int){ 2 }, (int){ 3 }) } 99 o8: (int){ |((int){ 2 }, (int){ 3 }) } 100 o9: (int){ |((int){ 2 }, (int){ 3 }) } 101 o10: (int){ |(*(int){ 2 }, (int){ 3 }) } 102 m1: (int){ |(*(int){ 2 }, (int){ 3 }) } 103 m2: (int){ |(*(int){ 2 }, (int){ 3 }) } 104 m3: (int){ |(*(int){ 2 }, (int){ 3 }) } 105 m4: (int){ |(*(int){ 2 }, (int){ 3 }) } 106 m5: (int){ |(*(int){ 2 }, (int){ 3 }) } 107 i1: (string){ "c" } 108 }