cuelang.org/go@v0.13.0/cue/testdata/disjunctions/issue3857.txtar (about) 1 -- in.cue -- 2 reduced: t1: { 3 S: { if true { a: U } } 4 x: S 5 x: { 6 ["a"]: b: 1 | T 7 d: b: x.a 8 } 9 T: 1 10 U: b: 1 | 1 11 } 12 issue3851: t1: { 13 #Top: _ 14 #Config: { 15 disj: _ | *"default" 16 shared: _ 17 } 18 19 #Schema: { 20 [string]: #Config 21 if true { 22 one: shared: "foo" 23 } 24 } 25 26 out: #Schema 27 out: { 28 ["one"]: disj: _ | #Top 29 two: shared: out.one.shared 30 } 31 } 32 issue3851: t2: { 33 #Top: _ 34 #Config: { 35 disj: _ | *{} 36 shared: _ 37 } 38 39 #Env: { 40 conf: [string]: #Config 41 if true { 42 conf: one: shared: "foo" 43 } 44 } 45 46 env1: #Env 47 48 [string]: { 49 conf: ["one"]: disj: {} | #Top 50 conf: two: shared: conf.one.shared 51 } 52 } 53 -- out/eval/stats -- 54 Leaks: 6 55 Freed: 90 56 Reused: 79 57 Allocs: 17 58 Retain: 2 59 60 Unifications: 60 61 Conjuncts: 151 62 Disjuncts: 98 63 -- out/evalalpha -- 64 (struct){ 65 reduced: (struct){ 66 t1: (struct){ 67 S: (struct){ 68 a: ~(reduced.t1.U) 69 } 70 x: (struct){ 71 d: (struct){ 72 b: ~(reduced.t1.x.a) 73 } 74 a: (struct){ 75 b: (int){ 1 } 76 } 77 } 78 T: (int){ 1 } 79 U: (struct){ 80 b: (int){ 1 } 81 } 82 } 83 } 84 issue3851: (struct){ 85 t1: (struct){ 86 #Top: (_){ _ } 87 #Config: (#struct){ 88 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 89 shared: (_){ _ } 90 } 91 #Schema: (#struct){ 92 one: (#struct){ 93 shared: (string){ "foo" } 94 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 95 } 96 } 97 out: (#struct){ 98 two: (#struct){ 99 shared: (string){ "foo" } 100 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 101 } 102 one: (#struct){ 103 shared: (string){ "foo" } 104 disj: (_){ _ } 105 } 106 } 107 } 108 t2: (struct){ 109 #Top: (_){ _ } 110 #Config: (#struct){ 111 disj: (_){ |(*(#struct){ 112 }, (_){ _ }) } 113 shared: (_){ _ } 114 } 115 #Env: (#struct){ 116 conf: (#struct){ 117 one: (#struct){ 118 shared: (string){ "foo" } 119 disj: (_){ |(*(#struct){ 120 }, (_){ _ }) } 121 } 122 } 123 } 124 env1: (#struct){ 125 conf: (#struct){ 126 two: (#struct){ 127 shared: (string){ "foo" } 128 disj: (_){ |(*(#struct){ 129 }, (_){ _ }) } 130 } 131 one: (#struct){ 132 shared: (string){ "foo" } 133 disj: (_){ |(*(#struct){ 134 }, (_){ _ }, (#struct){ 135 }, (_){ _ }) } 136 } 137 } 138 } 139 } 140 } 141 } 142 -- diff/-out/evalalpha<==>+out/eval -- 143 diff old new 144 --- old 145 +++ new 146 @@ -2,18 +2,14 @@ 147 reduced: (struct){ 148 t1: (struct){ 149 S: (struct){ 150 - a: (struct){ 151 - b: (int){ 1 } 152 - } 153 + a: ~(reduced.t1.U) 154 } 155 x: (struct){ 156 - a: (struct){ 157 - b: (int){ 1 } 158 - } 159 d: (struct){ 160 - b: (struct){ 161 - b: (int){ 1 } 162 - } 163 + b: ~(reduced.t1.x.a) 164 + } 165 + a: (struct){ 166 + b: (int){ 1 } 167 } 168 } 169 T: (int){ 1 } 170 @@ -36,14 +32,14 @@ 171 } 172 } 173 out: (#struct){ 174 - one: (#struct){ 175 - shared: (string){ "foo" } 176 - disj: (_){ |(*(string){ "default" }, (_){ _ }) } 177 - } 178 two: (#struct){ 179 shared: (string){ "foo" } 180 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 181 } 182 + one: (#struct){ 183 + shared: (string){ "foo" } 184 + disj: (_){ _ } 185 + } 186 } 187 } 188 t2: (struct){ 189 @@ -64,17 +60,17 @@ 190 } 191 env1: (#struct){ 192 conf: (#struct){ 193 - one: (#struct){ 194 - shared: (string){ "foo" } 195 - disj: (_){ |(*(#struct){ 196 - }, (_){ _ }, (struct){ 197 - }) } 198 - } 199 two: (#struct){ 200 shared: (string){ "foo" } 201 disj: (_){ |(*(#struct){ 202 }, (_){ _ }) } 203 } 204 + one: (#struct){ 205 + shared: (string){ "foo" } 206 + disj: (_){ |(*(#struct){ 207 + }, (_){ _ }, (#struct){ 208 + }, (_){ _ }) } 209 + } 210 } 211 } 212 } 213 -- out/eval -- 214 (struct){ 215 reduced: (struct){ 216 t1: (struct){ 217 S: (struct){ 218 a: (struct){ 219 b: (int){ 1 } 220 } 221 } 222 x: (struct){ 223 a: (struct){ 224 b: (int){ 1 } 225 } 226 d: (struct){ 227 b: (struct){ 228 b: (int){ 1 } 229 } 230 } 231 } 232 T: (int){ 1 } 233 U: (struct){ 234 b: (int){ 1 } 235 } 236 } 237 } 238 issue3851: (struct){ 239 t1: (struct){ 240 #Top: (_){ _ } 241 #Config: (#struct){ 242 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 243 shared: (_){ _ } 244 } 245 #Schema: (#struct){ 246 one: (#struct){ 247 shared: (string){ "foo" } 248 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 249 } 250 } 251 out: (#struct){ 252 one: (#struct){ 253 shared: (string){ "foo" } 254 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 255 } 256 two: (#struct){ 257 shared: (string){ "foo" } 258 disj: (_){ |(*(string){ "default" }, (_){ _ }) } 259 } 260 } 261 } 262 t2: (struct){ 263 #Top: (_){ _ } 264 #Config: (#struct){ 265 disj: (_){ |(*(#struct){ 266 }, (_){ _ }) } 267 shared: (_){ _ } 268 } 269 #Env: (#struct){ 270 conf: (#struct){ 271 one: (#struct){ 272 shared: (string){ "foo" } 273 disj: (_){ |(*(#struct){ 274 }, (_){ _ }) } 275 } 276 } 277 } 278 env1: (#struct){ 279 conf: (#struct){ 280 one: (#struct){ 281 shared: (string){ "foo" } 282 disj: (_){ |(*(#struct){ 283 }, (_){ _ }, (struct){ 284 }) } 285 } 286 two: (#struct){ 287 shared: (string){ "foo" } 288 disj: (_){ |(*(#struct){ 289 }, (_){ _ }) } 290 } 291 } 292 } 293 } 294 } 295 } 296 -- out/compile -- 297 --- in.cue 298 { 299 reduced: { 300 t1: { 301 S: { 302 if true { 303 a: 〈2;U〉 304 } 305 } 306 x: 〈0;S〉 307 x: { 308 ["a"]: { 309 b: (1|〈2;T〉) 310 } 311 d: { 312 b: 〈2;x〉.a 313 } 314 } 315 T: 1 316 U: { 317 b: (1|1) 318 } 319 } 320 } 321 issue3851: { 322 t1: { 323 #Top: _ 324 #Config: { 325 disj: (_|*"default") 326 shared: _ 327 } 328 #Schema: { 329 [string]: 〈1;#Config〉 330 if true { 331 one: { 332 shared: "foo" 333 } 334 } 335 } 336 out: 〈0;#Schema〉 337 out: { 338 ["one"]: { 339 disj: (_|〈2;#Top〉) 340 } 341 two: { 342 shared: 〈2;out〉.one.shared 343 } 344 } 345 } 346 } 347 issue3851: { 348 t2: { 349 #Top: _ 350 #Config: { 351 disj: (_|*{}) 352 shared: _ 353 } 354 #Env: { 355 conf: { 356 [string]: 〈2;#Config〉 357 } 358 if true { 359 conf: { 360 one: { 361 shared: "foo" 362 } 363 } 364 } 365 } 366 env1: 〈0;#Env〉 367 [string]: { 368 conf: { 369 ["one"]: { 370 disj: ({}|〈3;#Top〉) 371 } 372 } 373 conf: { 374 two: { 375 shared: 〈2;conf〉.one.shared 376 } 377 } 378 } 379 } 380 } 381 }