cuelang.org/go@v0.13.0/cue/testdata/disjunctions/defaults.txtar (about) 1 -- in.cue -- 2 passToSingleValue: p1: _ | *((_ | *"x") & "y") 3 passToSingleValue: p2: _ | *((*"x" | _) & "y") 4 passToSingleValue: p3: *((_ | *"x") & "y") | _ 5 passToSingleValue: p4: *((*"x" | _) & "y") | _ 6 7 issue3779: { 8 out: #Foo & { 9 fieldFoo: "foo" 10 } 11 #Foo: #Bar & { 12 fieldFoo: string | *"foo-default" 13 } 14 #Bar: { 15 fieldFoo: _ 16 fieldBar: string | *fieldFoo 17 } 18 } 19 -- out/compile -- 20 --- in.cue 21 { 22 passToSingleValue: { 23 p1: (_|*((_|*"x") & "y")) 24 } 25 passToSingleValue: { 26 p2: (_|*((*"x"|_) & "y")) 27 } 28 passToSingleValue: { 29 p3: (*((_|*"x") & "y")|_) 30 } 31 passToSingleValue: { 32 p4: (*((*"x"|_) & "y")|_) 33 } 34 issue3779: { 35 out: (〈0;#Foo〉 & { 36 fieldFoo: "foo" 37 }) 38 #Foo: (〈0;#Bar〉 & { 39 fieldFoo: (string|*"foo-default") 40 }) 41 #Bar: { 42 fieldFoo: _ 43 fieldBar: (string|*〈0;fieldFoo〉) 44 } 45 } 46 } 47 -- out/eval -- 48 (struct){ 49 passToSingleValue: (struct){ 50 p1: (_){ |(*(string){ "y" }, (_){ _ }) } 51 p2: (_){ |(*(string){ "y" }, (_){ _ }) } 52 p3: (_){ |(*(string){ "y" }, (_){ _ }) } 53 p4: (_){ |(*(string){ "y" }, (_){ _ }) } 54 } 55 issue3779: (struct){ 56 out: (#struct){ 57 fieldFoo: (string){ "foo" } 58 fieldBar: (string){ |(*(string){ "foo" }, (string){ string }) } 59 } 60 #Foo: (#struct){ 61 fieldFoo: (string){ |(*(string){ "foo-default" }, (string){ string }) } 62 fieldBar: (string){ |(*(string){ "foo-default" }, (string){ string }) } 63 } 64 #Bar: (#struct){ 65 fieldFoo: (_){ _ } 66 fieldBar: (_){ |(*(_){ _ }, (string){ string }) } 67 } 68 } 69 } 70 -- out/eval/stats -- 71 Leaks: 0 72 Freed: 46 73 Reused: 37 74 Allocs: 9 75 Retain: 2 76 77 Unifications: 16 78 Conjuncts: 68 79 Disjuncts: 48