cuelang.org/go@v0.13.0/pkg/struct/testdata/struct.txtar (about) 1 -- in.cue -- 2 import "struct" 3 4 minFields1: { 5 [string]: struct.MinFields(1) 6 7 incomplete1: {} 8 optIncomplete: {a?: string} 9 10 fail1: close({}) 11 optCloseIncomplete: close({a?: 1}) 12 failHidden1: close({_a: 1}) 13 14 ok4: {_a: 1, a: 1} 15 ok1: {a: 1} 16 ok2: close({a: 1}) 17 ok3: {a?: 1, a: 1} 18 ok5: {#a: int, a: #a & 1} 19 } 20 21 minFields2: { 22 [string]: struct.MinFields(2) 23 24 incomplete1: close({a?: string, b: 1}) 25 incomplete2: close({a?: string, b?: int}) 26 incomplete3: close({a?: string, b?: int, c: 1}) 27 incomplete4: close({a?: string, b?: int, c?: int}) 28 29 fail: close({a?: string}) 30 } 31 32 maxFields: { 33 [string]: struct.MaxFields(1) 34 35 ok1: {} 36 ok2: {a: 1} 37 ok3: close({a: 1}) 38 ok4: {a?: 1, b?: 2} 39 ok5: {a: 1, _b: 2} 40 ok6: {a: 1, #b: int} 41 42 fail1: {a: 1, b: 2} 43 } 44 45 -- out/structs-v3 -- 46 Errors: 47 minFields1.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 48 ./in.cue:4:12 49 ./in.cue:4:29 50 ./in.cue:9:9 51 minFields1.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 52 ./in.cue:4:12 53 ./in.cue:4:29 54 ./in.cue:11:15 55 minFields2.fail: invalid value {a?:string} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (0 < 2): 56 ./in.cue:21:12 57 ./in.cue:21:29 58 ./in.cue:28:8 59 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 60 ./in.cue:32:12 61 ./in.cue:32:29 62 ./in.cue:41:9 63 64 Result: 65 import "struct" 66 67 minFields1: { 68 incomplete1: struct.MinFields(1) & {} 69 optIncomplete: struct.MinFields(1) & { 70 a?: string 71 } 72 fail1: _|_ // minFields1.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 73 optCloseIncomplete: struct.MinFields(1) & close({ 74 a?: 1 75 }) 76 failHidden1: _|_ // minFields1.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 77 ok4: { 78 a: 1 79 } 80 ok1: { 81 a: 1 82 } 83 ok2: { 84 a: 1 85 } 86 ok3: { 87 a: 1 88 } 89 ok5: { 90 #a: int 91 a: 1 92 } 93 } 94 minFields2: { 95 incomplete1: struct.MinFields(2) & close({ 96 a?: string 97 b: 1 98 }) 99 incomplete2: struct.MinFields(2) & close({ 100 a?: string 101 b?: int 102 }) 103 incomplete3: struct.MinFields(2) & close({ 104 a?: string 105 b?: int 106 c: 1 107 }) 108 incomplete4: struct.MinFields(2) & close({ 109 a?: string 110 b?: int 111 c?: int 112 }) 113 fail: _|_ // minFields2.fail: invalid value {a?:string} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (0 < 2) 114 } 115 maxFields: { 116 ok1: {} 117 ok2: { 118 a: 1 119 } 120 ok3: { 121 a: 1 122 } 123 ok4: { 124 a?: 1 125 b?: 2 126 } 127 ok5: { 128 a: 1 129 } 130 ok6: { 131 a: 1 132 #b: int 133 } 134 fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1) 135 } 136 -- diff/-out/structs-v3<==>+out/structs -- 137 diff old new 138 --- old 139 +++ new 140 @@ -7,6 +7,10 @@ 141 ./in.cue:4:12 142 ./in.cue:4:29 143 ./in.cue:11:15 144 +minFields2.fail: invalid value {a?:string} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (0 < 2): 145 + ./in.cue:21:12 146 + ./in.cue:21:29 147 + ./in.cue:28:8 148 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 149 ./in.cue:32:12 150 ./in.cue:32:29 151 @@ -61,9 +65,7 @@ 152 b?: int 153 c?: int 154 }) 155 - fail: struct.MinFields(2) & close({ 156 - a?: string 157 - }) 158 + fail: _|_ // minFields2.fail: invalid value {a?:string} (does not satisfy struct.MinFields(2)): len(fields) < MinFields(2) (0 < 2) 159 } 160 maxFields: { 161 ok1: {} 162 -- diff/todo/p2 -- 163 Missing error positions. 164 -- diff/explanation -- 165 minFields1.fail1: the new evaluator fails as expected. It is more precise than 166 the old evaluator. 167 -- out/structs -- 168 Errors: 169 minFields1.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 170 ./in.cue:4:12 171 ./in.cue:4:29 172 ./in.cue:9:9 173 minFields1.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 174 ./in.cue:4:12 175 ./in.cue:4:29 176 ./in.cue:11:15 177 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 178 ./in.cue:32:12 179 ./in.cue:32:29 180 ./in.cue:41:9 181 182 Result: 183 import "struct" 184 185 minFields1: { 186 incomplete1: struct.MinFields(1) & {} 187 optIncomplete: struct.MinFields(1) & { 188 a?: string 189 } 190 fail1: _|_ // minFields1.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 191 optCloseIncomplete: struct.MinFields(1) & close({ 192 a?: 1 193 }) 194 failHidden1: _|_ // minFields1.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 195 ok4: { 196 a: 1 197 } 198 ok1: { 199 a: 1 200 } 201 ok2: { 202 a: 1 203 } 204 ok3: { 205 a: 1 206 } 207 ok5: { 208 #a: int 209 a: 1 210 } 211 } 212 minFields2: { 213 incomplete1: struct.MinFields(2) & close({ 214 a?: string 215 b: 1 216 }) 217 incomplete2: struct.MinFields(2) & close({ 218 a?: string 219 b?: int 220 }) 221 incomplete3: struct.MinFields(2) & close({ 222 a?: string 223 b?: int 224 c: 1 225 }) 226 incomplete4: struct.MinFields(2) & close({ 227 a?: string 228 b?: int 229 c?: int 230 }) 231 fail: struct.MinFields(2) & close({ 232 a?: string 233 }) 234 } 235 maxFields: { 236 ok1: {} 237 ok2: { 238 a: 1 239 } 240 ok3: { 241 a: 1 242 } 243 ok4: { 244 a?: 1 245 b?: 2 246 } 247 ok5: { 248 a: 1 249 } 250 ok6: { 251 a: 1 252 #b: int 253 } 254 fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1) 255 }