github.com/solo-io/cue@v0.4.7/cue/testdata/resolve/030_definitions_with_disjunctions.txtar (about) 1 # DO NOT EDIT; generated by go run testdata/gen.go 2 # 3 #name: definitions with disjunctions 4 #evalPartial 5 -- in.cue -- 6 #Foo: { 7 field: int 8 9 {a: 1} | 10 {b: 2} 11 } 12 13 foo: #Foo 14 foo: {a: 1} 15 16 bar: #Foo 17 bar: {c: 2} 18 19 baz: #Foo 20 baz: {b: 2} 21 -- out/def -- 22 #Foo: { 23 field: int 24 a: 1 25 } | { 26 field: int 27 b: 2 28 } 29 foo: #Foo & { 30 a: 1 31 } 32 bar: _|_ // 33 baz: #Foo & { 34 b: 2 35 } 36 -- out/legacy-debug -- 37 <0>{#Foo: (<1>C{field: int, a: 1} | <2>C{field: int, b: 2}), foo: <3>C{field: int, a: 1}, bar: _|_(2:empty disjunction: field "c" not allowed in closed struct), baz: <4>C{field: int, b: 2}} 38 -- out/compile -- 39 --- in.cue 40 { 41 #Foo: { 42 field: int 43 ({ 44 a: 1 45 }|{ 46 b: 2 47 }) 48 } 49 foo: 〈0;#Foo〉 50 foo: { 51 a: 1 52 } 53 bar: 〈0;#Foo〉 54 bar: { 55 c: 2 56 } 57 baz: 〈0;#Foo〉 58 baz: { 59 b: 2 60 } 61 } 62 -- out/eval -- 63 Errors: 64 bar: 1 errors in empty disjunction: 65 bar: field not allowed: c: 66 ./in.cue:1:7 67 ./in.cue:4:2 68 ./in.cue:11:6 69 ./in.cue:12:7 70 71 Result: 72 (_|_){ 73 // [eval] 74 #Foo: (#struct){ |((#struct){ 75 field: (int){ int } 76 a: (int){ 1 } 77 }, (#struct){ 78 field: (int){ int } 79 b: (int){ 2 } 80 }) } 81 foo: (#struct){ 82 field: (int){ int } 83 a: (int){ 1 } 84 } 85 bar: (_|_){ 86 // [eval] bar: 1 errors in empty disjunction: 87 // bar: field not allowed: c: 88 // ./in.cue:1:7 89 // ./in.cue:4:2 90 // ./in.cue:11:6 91 // ./in.cue:12:7 92 field: (int){ int } 93 c: (_|_){ 94 // [eval] bar: field not allowed: c: 95 // ./in.cue:1:7 96 // ./in.cue:4:2 97 // ./in.cue:5:2 98 // ./in.cue:11:6 99 // ./in.cue:12:7 100 } 101 b: (int){ 2 } 102 } 103 baz: (#struct){ 104 field: (int){ int } 105 b: (int){ 2 } 106 } 107 }