cuelang.org/go@v0.10.1/pkg/struct/testdata/struct.txtar (about) 1 -- in.cue -- 2 import "struct" 3 4 minFields: { 5 [string]: struct.MinFields(1) 6 7 incomplete1: {} 8 fail1: close({}) 9 failOptional1: close({a?: 1}) 10 failHidden1: close({_a: 1}) 11 ok4: {_a: 1, a: 1} 12 ok1: {a: 1} 13 ok2: close({a: 1}) 14 ok3: {a?: 1, a: 1} 15 ok5: {#a: int, a: #a & 1} 16 } 17 18 maxFields: { 19 [string]: struct.MaxFields(1) 20 21 ok1: {} 22 ok2: {a: 1} 23 ok3: close({a: 1}) 24 ok4: {a?: 1, b?: 2} 25 ok5: {a: 1, _b: 2} 26 ok6: {a: 1, #b: int} 27 28 fail1: {a: 1, b: 2} 29 } 30 31 -- out/structs-v3 -- 32 Errors: 33 minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 34 ./in.cue:4:12 35 ./in.cue:4:29 36 minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 37 ./in.cue:4:12 38 ./in.cue:4:29 39 minFields.failOptional1: invalid value {a?:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 40 ./in.cue:4:12 41 ./in.cue:4:29 42 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 43 ./in.cue:18:12 44 ./in.cue:18:29 45 46 Result: 47 import "struct" 48 49 minFields: { 50 incomplete1: {} & struct.MinFields(1) 51 fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 52 failOptional1: _|_ // minFields.failOptional1: invalid value {a?:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 53 failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 54 ok4: { 55 a: 1 56 } 57 ok1: { 58 a: 1 59 } 60 ok2: { 61 a: 1 62 } 63 ok3: { 64 a: 1 65 } 66 ok5: { 67 #a: int 68 a: 1 69 } 70 } 71 maxFields: { 72 ok1: {} 73 ok2: { 74 a: 1 75 } 76 ok3: { 77 a: 1 78 } 79 ok4: { 80 a?: 1 81 b?: 2 82 } 83 ok5: { 84 a: 1 85 } 86 ok6: { 87 a: 1 88 #b: int 89 } 90 fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1) 91 } 92 -- diff/explanation -- 93 failOptional1: the new evaluator fails as expected, but the old evaluator doesn't - 94 perhaps due to a bug in either the old evaluator or test code. 95 -- diff/-out/structs-v3<==>+out/structs -- 96 diff old new 97 --- old 98 +++ new 99 @@ -2,15 +2,15 @@ 100 minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 101 ./in.cue:4:12 102 ./in.cue:4:29 103 - ./in.cue:7:9 104 minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 105 ./in.cue:4:12 106 ./in.cue:4:29 107 - ./in.cue:9:15 108 +minFields.failOptional1: invalid value {a?:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 109 + ./in.cue:4:12 110 + ./in.cue:4:29 111 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 112 ./in.cue:18:12 113 ./in.cue:18:29 114 - ./in.cue:27:9 115 116 Result: 117 import "struct" 118 @@ -17,11 +17,9 @@ 119 120 minFields: { 121 incomplete1: {} & struct.MinFields(1) 122 - fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 123 - failOptional1: close({ 124 - a?: 1 125 - }) & struct.MinFields(1) 126 - failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 127 + fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 128 + failOptional1: _|_ // minFields.failOptional1: invalid value {a?:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 129 + failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 130 ok4: { 131 a: 1 132 } 133 -- diff/todo/p2 -- 134 Missing error positions. 135 -- out/structs -- 136 Errors: 137 minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 138 ./in.cue:4:12 139 ./in.cue:4:29 140 ./in.cue:7:9 141 minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1): 142 ./in.cue:4:12 143 ./in.cue:4:29 144 ./in.cue:9:15 145 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1): 146 ./in.cue:18:12 147 ./in.cue:18:29 148 ./in.cue:27:9 149 150 Result: 151 import "struct" 152 153 minFields: { 154 incomplete1: {} & struct.MinFields(1) 155 fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 156 failOptional1: close({ 157 a?: 1 158 }) & struct.MinFields(1) 159 failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1) 160 ok4: { 161 a: 1 162 } 163 ok1: { 164 a: 1 165 } 166 ok2: { 167 a: 1 168 } 169 ok3: { 170 a: 1 171 } 172 ok5: { 173 #a: int 174 a: 1 175 } 176 } 177 maxFields: { 178 ok1: {} 179 ok2: { 180 a: 1 181 } 182 ok3: { 183 a: 1 184 } 185 ok4: { 186 a?: 1 187 b?: 2 188 } 189 ok5: { 190 a: 1 191 } 192 ok6: { 193 a: 1 194 #b: int 195 } 196 fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1) 197 }