cuelang.org/go@v0.10.1/cue/testdata/eval/bounds.txtar (about) 1 -- in.cue -- 2 x0: 5 3 x1: b5 & 30 4 5 b0: <x0 & >0 6 b1: b0 & int 7 b2: int & <5.5 8 b3: <10 & <=5 9 b4: >=20 & >20 10 b5: >=21 & >20 11 b6: int & >5 & <=6 12 13 simplifyExpr: { 14 less1: <(<3) 15 less2: <(<=3) 16 less3: <=(<3) 17 less4: <=(<=3) 18 less5: <(!=3) 19 less6: <=(!=3) 20 21 gtr1: >(>3) 22 gtr2: >(>=3) 23 gtr3: >=(>3) 24 gtr4: >=(>=3) 25 gtr5: >(!=3) 26 gtr6: >=(!=3) 27 28 lg1: <(>3) 29 lg2: <(>=3) 30 lg3: <=(>3) 31 lg4: <=(>=3) 32 33 gl1: >(<3) 34 gl2: >(<=3) 35 gl3: >=(<3) 36 gl4: >=(<=3) 37 38 ne1: !=(!=3) 39 ne2: !=(<3) 40 ne3: !=(<=3) 41 ne4: !=(>3) 42 ne5: !=(>=3) 43 44 s: string 45 n: number 46 i: int 47 f: float 48 b: bytes 49 basic1: <(i) 50 basic2: >(n) 51 basic3: >=(s) 52 basic4: <=(f) 53 basic5: <=(b) 54 55 // Do NOT interpret this the same as `!= type`. 56 bne1: !=(s) 57 bne2: !=(n) 58 bne3: !=(n) 59 bne4: !=(i) 60 bne5: !=(b) 61 62 e1: <(=~"foo") 63 e2: >(null) 64 } 65 -- out/eval/stats -- 66 Leaks: 0 67 Freed: 53 68 Reused: 50 69 Allocs: 3 70 Retain: 1 71 72 Unifications: 53 73 Conjuncts: 110 74 Disjuncts: 54 75 -- out/eval -- 76 Errors: 77 simplifyExpr.e2: cannot use null for bound >: 78 ./in.cue:62:8 79 80 Result: 81 (_|_){ 82 // [eval] 83 x0: (int){ 5 } 84 x1: (int){ 30 } 85 b0: (number){ &(>0, <5) } 86 b1: (int){ &(>0, <5, int) } 87 b2: (int){ &(<5.5, int) } 88 b3: (number){ <=5 } 89 b4: (number){ >20 } 90 b5: (number){ >=21 } 91 b6: (int){ 6 } 92 simplifyExpr: (_|_){ 93 // [eval] 94 less1: (number){ <3 } 95 less2: (number){ <3 } 96 less3: (number){ <3 } 97 less4: (number){ <=3 } 98 less5: (number){ number } 99 less6: (number){ number } 100 gtr1: (number){ >3 } 101 gtr2: (number){ >3 } 102 gtr3: (number){ >3 } 103 gtr4: (number){ >=3 } 104 gtr5: (number){ number } 105 gtr6: (number){ number } 106 lg1: (number){ number } 107 lg2: (number){ number } 108 lg3: (number){ number } 109 lg4: (number){ number } 110 gl1: (number){ number } 111 gl2: (number){ number } 112 gl3: (number){ number } 113 gl4: (number){ number } 114 ne1: (int){ 3 } 115 ne2: (number){ >=3 } 116 ne3: (number){ >3 } 117 ne4: (number){ <=3 } 118 ne5: (number){ <3 } 119 s: (string){ string } 120 n: (number){ number } 121 i: (int){ int } 122 f: (float){ float } 123 b: (bytes){ bytes } 124 basic1: (_|_){ 125 // [incomplete] simplifyExpr.basic1: non-concrete value i for bound <: 126 // ./in.cue:48:12 127 } 128 basic2: (_|_){ 129 // [incomplete] simplifyExpr.basic2: non-concrete value n for bound >: 130 // ./in.cue:49:12 131 } 132 basic3: (_|_){ 133 // [incomplete] simplifyExpr.basic3: non-concrete value s for bound >=: 134 // ./in.cue:50:13 135 } 136 basic4: (_|_){ 137 // [incomplete] simplifyExpr.basic4: non-concrete value f for bound <=: 138 // ./in.cue:51:13 139 } 140 basic5: (_|_){ 141 // [incomplete] simplifyExpr.basic5: non-concrete value b for bound <=: 142 // ./in.cue:52:13 143 } 144 bne1: (_|_){ 145 // [incomplete] simplifyExpr.bne1: non-concrete value s for bound !=: 146 // ./in.cue:55:11 147 } 148 bne2: (_|_){ 149 // [incomplete] simplifyExpr.bne2: non-concrete value n for bound !=: 150 // ./in.cue:56:11 151 } 152 bne3: (_|_){ 153 // [incomplete] simplifyExpr.bne3: non-concrete value n for bound !=: 154 // ./in.cue:57:11 155 } 156 bne4: (_|_){ 157 // [incomplete] simplifyExpr.bne4: non-concrete value i for bound !=: 158 // ./in.cue:58:11 159 } 160 bne5: (_|_){ 161 // [incomplete] simplifyExpr.bne5: non-concrete value b for bound !=: 162 // ./in.cue:59:11 163 } 164 e1: (_|_){ 165 // [incomplete] simplifyExpr.e1: non-concrete value =~"foo" for bound <: 166 // ./in.cue:61:8 167 } 168 e2: (_|_){ 169 // [eval] simplifyExpr.e2: cannot use null for bound >: 170 // ./in.cue:62:8 171 } 172 } 173 } 174 -- out/compile -- 175 --- in.cue 176 { 177 x0: 5 178 x1: (〈0;b5〉 & 30) 179 b0: (<〈0;x0〉 & >0) 180 b1: (〈0;b0〉 & int) 181 b2: (int & <5.5) 182 b3: (<10 & <=5) 183 b4: (>=20 & >20) 184 b5: (>=21 & >20) 185 b6: ((int & >5) & <=6) 186 simplifyExpr: { 187 less1: <<3 188 less2: <<=3 189 less3: <=<3 190 less4: <=<=3 191 less5: <!=3 192 less6: <=!=3 193 gtr1: >>3 194 gtr2: >>=3 195 gtr3: >=>3 196 gtr4: >=>=3 197 gtr5: >!=3 198 gtr6: >=!=3 199 lg1: <>3 200 lg2: <>=3 201 lg3: <=>3 202 lg4: <=>=3 203 gl1: ><3 204 gl2: ><=3 205 gl3: >=<3 206 gl4: >=<=3 207 ne1: !=!=3 208 ne2: !=<3 209 ne3: !=<=3 210 ne4: !=>3 211 ne5: !=>=3 212 s: string 213 n: number 214 i: int 215 f: float 216 b: bytes 217 basic1: <〈0;i〉 218 basic2: >〈0;n〉 219 basic3: >=〈0;s〉 220 basic4: <=〈0;f〉 221 basic5: <=〈0;b〉 222 bne1: !=〈0;s〉 223 bne2: !=〈0;n〉 224 bne3: !=〈0;n〉 225 bne4: !=〈0;i〉 226 bne5: !=〈0;b〉 227 e1: <=~"foo" 228 e2: >null 229 } 230 }