cuelang.org/go@v0.13.0/cue/testdata/basicrewrite/013_obj_unify.txtar (about) 1 #name: obj unify 2 #evalPartial 3 -- in.cue -- 4 o1: {a: 1} & {b: 2} // {a:1,b:2} 5 o2: {a: 1, b: 2} & {b: 2} // {a:1,b:2} 6 o3: {a: 1} & {a: 1, b: 2} // {a:1,b:2} 7 o4: {a: 1} & {b: 2} // {a:1,b:2} 8 o4: {a: 1, b: 2} & {b: 2} 9 o4: {a: 1} & {a: 1, b: 2} 10 e: 1 // 1 & {a:3} 11 e: {a: 3} 12 -- out/def -- 13 o1: { 14 a: 1 15 b: 2 16 } 17 o2: { 18 a: 1 19 b: 2 20 } 21 o3: { 22 a: 1 23 b: 2 24 } 25 o4: { 26 a: 1 27 b: 2 28 } 29 e: _|_ // conflicting values 1 and {a: 3} (mismatched types int and struct) 30 -- out/legacy-debug -- 31 <0>{o1: <1>{a: 1, b: 2}, o2: <2>{a: 1, b: 2}, o3: <3>{a: 1, b: 2}, o4: <4>{a: 1, b: 2}, e: _|_((1 & <5>{a: 3}):conflicting values 1 and {a: 3} (mismatched types int and struct))} 32 -- out/compile -- 33 --- in.cue 34 { 35 o1: ({ 36 a: 1 37 } & { 38 b: 2 39 }) 40 o2: ({ 41 a: 1 42 b: 2 43 } & { 44 b: 2 45 }) 46 o3: ({ 47 a: 1 48 } & { 49 a: 1 50 b: 2 51 }) 52 o4: ({ 53 a: 1 54 } & { 55 b: 2 56 }) 57 o4: ({ 58 a: 1 59 b: 2 60 } & { 61 b: 2 62 }) 63 o4: ({ 64 a: 1 65 } & { 66 a: 1 67 b: 2 68 }) 69 e: 1 70 e: { 71 a: 3 72 } 73 } 74 -- out/eval/stats -- 75 Leaks: 0 76 Freed: 15 77 Reused: 12 78 Allocs: 3 79 Retain: 0 80 81 Unifications: 15 82 Conjuncts: 32 83 Disjuncts: 15 84 -- out/evalalpha -- 85 Errors: 86 e: conflicting values 1 and {a:3} (mismatched types int and struct): 87 ./in.cue:7:5 88 ./in.cue:8:4 89 90 Result: 91 (_|_){ 92 // [eval] 93 o1: (struct){ 94 a: (int){ 1 } 95 b: (int){ 2 } 96 } 97 o2: (struct){ 98 a: (int){ 1 } 99 b: (int){ 2 } 100 } 101 o3: (struct){ 102 a: (int){ 1 } 103 b: (int){ 2 } 104 } 105 o4: (struct){ 106 a: (int){ 1 } 107 b: (int){ 2 } 108 } 109 e: (_|_){ 110 // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct): 111 // ./in.cue:7:5 112 // ./in.cue:8:4 113 a: (_|_){// 3 114 } 115 } 116 } 117 -- diff/-out/evalalpha<==>+out/eval -- 118 diff old new 119 --- old 120 +++ new 121 @@ -26,6 +26,7 @@ 122 // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct): 123 // ./in.cue:7:5 124 // ./in.cue:8:4 125 - a: (int){ 3 } 126 + a: (_|_){// 3 127 + } 128 } 129 } 130 -- diff/explanation -- 131 An extra error messages that is correct, but not required. 132 -- out/eval -- 133 Errors: 134 e: conflicting values 1 and {a:3} (mismatched types int and struct): 135 ./in.cue:7:5 136 ./in.cue:8:4 137 138 Result: 139 (_|_){ 140 // [eval] 141 o1: (struct){ 142 a: (int){ 1 } 143 b: (int){ 2 } 144 } 145 o2: (struct){ 146 a: (int){ 1 } 147 b: (int){ 2 } 148 } 149 o3: (struct){ 150 a: (int){ 1 } 151 b: (int){ 2 } 152 } 153 o4: (struct){ 154 a: (int){ 1 } 155 b: (int){ 2 } 156 } 157 e: (_|_){ 158 // [eval] e: conflicting values 1 and {a:3} (mismatched types int and struct): 159 // ./in.cue:7:5 160 // ./in.cue:8:4 161 a: (int){ 3 } 162 } 163 }