@@ -36,23 +36,21 @@ minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fi
3636minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1):
3737 ./in.cue:4:12
3838 ./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
3942maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1):
4043 ./in.cue:18:12
4144 ./in.cue:18:29
42- maxFields.ok4: 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
4545
4646Result:
4747import "struct"
4848
4949minFields: {
5050 incomplete1: {} & struct.MinFields(1)
51- fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1)
52- failOptional1: {
53- a?: 1
54- }
55- failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 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)
5654 ok4: {
5755 a: 1
5856 }
@@ -78,7 +76,10 @@ maxFields: {
7876 ok3: {
7977 a: 1
8078 }
81- ok4: _|_ // maxFields.ok4: invalid value {a?:1,b?:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1)
79+ ok4: {
80+ a?: 1
81+ b?: 2
82+ }
8283 ok5: {
8384 a: 1
8485 }
@@ -88,11 +89,14 @@ maxFields: {
8889 }
8990 fail1: _|_ // maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1)
9091}
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.
9195-- diff/-out/structs-v3<==>+out/structs --
9296diff old new
9397--- old
9498+++ new
95- @@ -2,19 +2,15 @@
99+ @@ -2,15 +2,15 @@
96100 minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1):
97101 ./in.cue:4:12
98102 ./in.cue:4:29
@@ -101,17 +105,31 @@ diff old new
101105 ./in.cue:4:12
102106 ./in.cue:4:29
103107- ./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
104111 maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1):
105112 ./in.cue:18:12
106113 ./in.cue:18:29
107114- ./in.cue:27:9
108- maxFields.ok4: invalid value {a?:1,b?:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1):
109- ./in.cue:18:12
110- ./in.cue:18:29
111- - ./in.cue:23:7
112115
113116 Result:
114117 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+ }
115133-- diff/todo/p2 --
116134Missing error positions.
117135-- out/structs --
@@ -128,20 +146,16 @@ maxFields.fail1: invalid value {a:1,b:2} (does not satisfy struct.MaxFields(1)):
128146 ./in.cue:18:12
129147 ./in.cue:18:29
130148 ./in.cue:27:9
131- maxFields.ok4: invalid value {a?:1,b?:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1):
132- ./in.cue:18:12
133- ./in.cue:18:29
134- ./in.cue:23:7
135149
136150Result:
137151import "struct"
138152
139153minFields: {
140154 incomplete1: {} & struct.MinFields(1)
141155 fail1: _|_ // minFields.fail1: invalid value {} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1)
142- failOptional1: {
156+ failOptional1: close( {
143157 a?: 1
144- }
158+ }) & struct.MinFields(1)
145159 failHidden1: _|_ // minFields.failHidden1: invalid value {_a:1} (does not satisfy struct.MinFields(1)): len(fields) < MinFields(1) (0 < 1)
146160 ok4: {
147161 a: 1
@@ -168,7 +182,10 @@ maxFields: {
168182 ok3: {
169183 a: 1
170184 }
171- ok4: _|_ // maxFields.ok4: invalid value {a?:1,b?:2} (does not satisfy struct.MaxFields(1)): len(fields) > MaxFields(1) (2 > 1)
185+ ok4: {
186+ a?: 1
187+ b?: 2
188+ }
172189 ok5: {
173190 a: 1
174191 }
0 commit comments