...
1// Issue #783
2
3-- in.cue --
4elipsis: {
5 test1: {
6 string
7 #foo: "bar"
8 }
9
10 #Def: {
11 ...
12 #foo: string
13 _
14 }
15 check: test1 & #Def
16}
17
18bulk: {
19 test1: {
20 string
21 #foo: "bar"
22 }
23
24 #Def: {
25 [string]: int
26 #foo: string
27 _
28 }
29 check: test1 & #Def
30}
31
32optional: {
33 test1: {
34 string
35 #foo: "bar"
36 }
37
38 #Def: {
39 bar?: int
40 #foo: string
41 _
42 }
43 check: test1 & #Def
44}
45
46issue783: {
47 test1: {
48 string
49 #foo: "bar"
50 }
51
52 test2: {
53 hello: "world"
54 #foo: "bar"
55 }
56
57 #Def1: {
58 ...
59 #foo: string
60 } | {
61 string
62 #foo: string
63 }
64 check1a: test1 & #Def1
65 check1b: test2 & #Def1
66
67 #Def2: {
68 ...
69 #foo: string
70 _
71 }
72 check2a: test1 & #Def2
73 check2b: test2 & #Def2
74}
75-- out/eval/stats --
76Leaks: 0
77Freed: 54
78Reused: 48
79Allocs: 6
80Retain: 0
81
82Unifications: 48
83Conjuncts: 107
84Disjuncts: 54
85-- out/eval --
86(struct){
87 elipsis: (struct){
88 test1: (string){
89 string
90 #foo: (string){ "bar" }
91 }
92 #Def: (_){
93 _
94 #foo: (string){ string }
95 }
96 check: (string){
97 string
98 #foo: (string){ "bar" }
99 }
100 }
101 bulk: (struct){
102 test1: (string){
103 string
104 #foo: (string){ "bar" }
105 }
106 #Def: (_){
107 _
108 #foo: (string){ string }
109 }
110 check: (string){
111 string
112 #foo: (string){ "bar" }
113 }
114 }
115 optional: (struct){
116 test1: (string){
117 string
118 #foo: (string){ "bar" }
119 }
120 #Def: (_){
121 _
122 bar?: (int){ int }
123 #foo: (string){ string }
124 }
125 check: (string){
126 string
127 #foo: (string){ "bar" }
128 bar?: (int){ int }
129 }
130 }
131 issue783: (struct){
132 test1: (string){
133 string
134 #foo: (string){ "bar" }
135 }
136 test2: (struct){
137 hello: (string){ "world" }
138 #foo: (string){ "bar" }
139 }
140 #Def1: ((string|struct)){ |((#struct){
141 #foo: (string){ string }
142 }, (string){
143 string
144 #foo: (string){ string }
145 }) }
146 check1a: (string){
147 string
148 #foo: (string){ "bar" }
149 }
150 check1b: (#struct){
151 hello: (string){ "world" }
152 #foo: (string){ "bar" }
153 }
154 #Def2: (_){
155 _
156 #foo: (string){ string }
157 }
158 check2a: (string){
159 string
160 #foo: (string){ "bar" }
161 }
162 check2b: (#struct){
163 hello: (string){ "world" }
164 #foo: (string){ "bar" }
165 }
166 }
167}
168-- out/compile --
169--- in.cue
170{
171 elipsis: {
172 test1: {
173 string
174 #foo: "bar"
175 }
176 #Def: {
177 ...
178 #foo: string
179 _
180 }
181 check: (〈0;test1〉 & 〈0;#Def〉)
182 }
183 bulk: {
184 test1: {
185 string
186 #foo: "bar"
187 }
188 #Def: {
189 [string]: int
190 #foo: string
191 _
192 }
193 check: (〈0;test1〉 & 〈0;#Def〉)
194 }
195 optional: {
196 test1: {
197 string
198 #foo: "bar"
199 }
200 #Def: {
201 bar?: int
202 #foo: string
203 _
204 }
205 check: (〈0;test1〉 & 〈0;#Def〉)
206 }
207 issue783: {
208 test1: {
209 string
210 #foo: "bar"
211 }
212 test2: {
213 hello: "world"
214 #foo: "bar"
215 }
216 #Def1: ({
217 ...
218 #foo: string
219 }|{
220 string
221 #foo: string
222 })
223 check1a: (〈0;test1〉 & 〈0;#Def1〉)
224 check1b: (〈0;test2〉 & 〈0;#Def1〉)
225 #Def2: {
226 ...
227 #foo: string
228 _
229 }
230 check2a: (〈0;test1〉 & 〈0;#Def2〉)
231 check2b: (〈0;test2〉 & 〈0;#Def2〉)
232 }
233}
View as plain text