cuelang.org/go@v0.13.0/cue/testdata/definitions/issue3851.txtar (about) 1 -- in.cue -- 2 #App: { 3 name?: string 4 sub1?: sub2?: null | _ 5 } 6 #Output: null | #App 7 out: #Output & { 8 name: "foo" 9 sub1: sub2: {} | _ 10 sub1: sub2: { 11 sub3: { 12 let _let = "bar" 13 foo: _let 14 } 15 } 16 } 17 -- out/eval/stats -- 18 Leaks: 0 19 Freed: 48 20 Reused: 39 21 Allocs: 9 22 Retain: 0 23 24 Unifications: 34 25 Conjuncts: 65 26 Disjuncts: 48 27 -- out/evalalpha -- 28 (struct){ 29 #App: (#struct){ 30 name?: (string){ string } 31 sub1?: (#struct){ 32 sub2?: (_){ |((null){ null }, (_){ _ }) } 33 } 34 } 35 #Output: ((null|struct)){ |((null){ null }, (#struct){ 36 name?: (string){ string } 37 sub1?: (#struct){ 38 sub2?: (_){ |((null){ null }, (_){ _ }) } 39 } 40 }) } 41 out: (#struct){ 42 name: (string){ "foo" } 43 sub1: (#struct){ 44 sub2: (#struct){ 45 sub3: (struct){ 46 let _let#1 = (string){ "bar" } 47 foo: (string){ "bar" } 48 } 49 } 50 } 51 } 52 } 53 -- diff/-out/evalalpha<==>+out/eval -- 54 diff old new 55 --- old 56 +++ new 57 @@ -14,7 +14,7 @@ 58 out: (#struct){ 59 name: (string){ "foo" } 60 sub1: (#struct){ 61 - sub2: (struct){ 62 + sub2: (#struct){ 63 sub3: (struct){ 64 let _let#1 = (string){ "bar" } 65 foo: (string){ "bar" } 66 -- out/eval -- 67 (struct){ 68 #App: (#struct){ 69 name?: (string){ string } 70 sub1?: (#struct){ 71 sub2?: (_){ |((null){ null }, (_){ _ }) } 72 } 73 } 74 #Output: ((null|struct)){ |((null){ null }, (#struct){ 75 name?: (string){ string } 76 sub1?: (#struct){ 77 sub2?: (_){ |((null){ null }, (_){ _ }) } 78 } 79 }) } 80 out: (#struct){ 81 name: (string){ "foo" } 82 sub1: (#struct){ 83 sub2: (struct){ 84 sub3: (struct){ 85 let _let#1 = (string){ "bar" } 86 foo: (string){ "bar" } 87 } 88 } 89 } 90 } 91 } 92 -- out/compile -- 93 --- in.cue 94 { 95 #App: { 96 name?: string 97 sub1?: { 98 sub2?: (null|_) 99 } 100 } 101 #Output: (null|〈0;#App〉) 102 out: (〈0;#Output〉 & { 103 name: "foo" 104 sub1: { 105 sub2: ({}|_) 106 } 107 sub1: { 108 sub2: { 109 sub3: { 110 let _let#1 = "bar" 111 foo: 〈0;let _let#1〉 112 } 113 } 114 } 115 }) 116 }