v2 / vlib / v / tests / blank_ident_test.v
328 lines · 282 sloc · 4.78 KB · f09826e928f9612bab9299faefff7cf34a503362
Raw
1fn test_assign() {
2 _ = 123
3}
4
5fn fn_with_blank_param(_ int) {
6 _ = 456
7}
8
9fn test_fn_with_blank_param() {
10 fn_with_blank_param(321)
11}
12
13fn fn_with_multiple_blank_param(_ int, _ f32) {
14 _ = 'not an int nor a float'
15}
16
17interface Foo {
18 fn_with_multiple_blank_param(int, f32)
19}
20
21struct Abc {}
22
23fn (_ Abc) fn_with_multiple_blank_param(_ int, _ f32) {}
24
25fn test_fn_with_multiple_blank_param() {
26 fn_with_multiple_blank_param(1, 1.1)
27 a := Abc{}
28 a.fn_with_multiple_blank_param(1, 1.1)
29}
30
31fn call_fn_with_multiple_blank_param(foo Foo) {
32 foo.fn_with_multiple_blank_param(1, 1.1)
33}
34
35fn test_interface_fn_with_multiple_blank_param() {
36 call_fn_with_multiple_blank_param(Abc{})
37}
38
39fn test_for_in_range() {
40 for _ in 1 .. 10 {
41 assert true
42 }
43}
44
45fn test_nested_range() {
46 for _ in 1 .. 10 {
47 for _ in 1 .. 10 {
48 assert true
49 }
50 }
51}
52
53fn test_for_in_array_simple() {
54 for _ in [1, 2, 3] {
55 assert true
56 }
57}
58
59fn test_for_in_array_key() {
60 mut i := 1
61 for _, v in [1, 2, 3] {
62 assert v == i
63 i++
64 }
65}
66
67fn test_for_in_array_val() {
68 mut j := 0
69 for i, _ in [3, 4, 5] {
70 assert i == j
71 j++
72 }
73}
74
75fn test_for_in_array_both() {
76 for _, _ in [1, 2, 3] {
77 assert true
78 }
79}
80
81fn test_nested_for_in_array_simple() {
82 for _ in [1, 2, 3] {
83 for _ in [1, 2, 3] {
84 assert true
85 }
86 }
87}
88
89fn test_nested_for_in_array_key() {
90 for _, v in [1, 2, 3] {
91 assert v > 0
92 for _, w in [1, 2, 3] {
93 assert w > 0
94 assert true
95 }
96 }
97}
98
99fn test_nested_for_in_array_val() {
100 for i, _ in [1, 2, 3] {
101 assert i > -1
102 for j, _ in [1, 2, 3] {
103 assert j > -1
104 assert true
105 }
106 }
107}
108
109fn test_nested_for_in_array_both() {
110 for _, _ in [1, 2, 3] {
111 for _, _ in [1, 2, 3] {
112 assert true
113 }
114 }
115}
116
117const m = {
118 'key': 'value'
119}
120
121fn test_for_in_map_key() {
122 for _, v in m {
123 assert v == 'value'
124 }
125}
126
127fn test_for_in_map_val() {
128 for i, _ in m {
129 assert i == 'key'
130 }
131}
132
133fn test_for_in_map_both() {
134 mut i := 0
135 for _, _ in m {
136 i++
137 }
138 assert i == 1
139}
140
141fn test_nested_for_in_map_key() {
142 for _, v in m {
143 assert v == 'value'
144 for _, w in m {
145 assert w == 'value'
146 }
147 }
148}
149
150fn test_nested_for_in_map_val() {
151 for i, _ in m {
152 assert i == 'key'
153 for j, _ in m {
154 assert j == 'key'
155 }
156 }
157}
158
159fn test_nested_for_in_map_both() {
160 mut i := 0
161 for _, _ in m {
162 for _, _ in m {
163 i++
164 }
165 }
166 assert i == 1
167}
168
169fn fn_for_in_variadic_args_simple(arr ...string) {
170 for _ in arr {
171 assert true
172 }
173}
174
175fn fn_for_in_variadic_args_key(arr ...string) {
176 for _, v in arr {
177 assert v > 'A'
178 assert true
179 }
180}
181
182fn fn_for_in_variadic_args_val(arr ...string) {
183 for i, _ in arr {
184 assert i > -1
185 assert true
186 }
187}
188
189fn fn_for_in_variadic_args_both(arr ...string) {
190 for _, _ in arr {
191 assert true
192 }
193}
194
195fn fn_nested_for_in_variadic_args(arr ...string) {
196 for _ in arr {
197 for _ in arr {
198 assert true
199 }
200 }
201}
202
203fn fn_nested_for_in_variadic_args_key(arr ...string) {
204 for _, v in arr {
205 assert v > 'A'
206 for _, w in arr {
207 assert w > 'A'
208 assert true
209 }
210 }
211}
212
213fn fn_nested_for_in_variadic_args_val(arr ...string) {
214 for i, _ in arr {
215 assert i > -1
216 for j, _ in arr {
217 assert j > -1
218 assert true
219 }
220 }
221}
222
223fn fn_nested_for_in_variadic_args_both(arr ...string) {
224 for _, _ in arr {
225 for _, _ in arr {
226 assert true
227 }
228 }
229}
230
231fn test_for_in_variadic_args() {
232 fn_for_in_variadic_args_simple('a', 'b', 'c')
233 fn_for_in_variadic_args_key('a', 'b', 'c')
234 fn_for_in_variadic_args_val('a', 'b', 'c')
235 fn_for_in_variadic_args_both('a', 'b', 'c')
236 fn_nested_for_in_variadic_args('a', 'b', 'c')
237 fn_nested_for_in_variadic_args_key('a', 'b', 'c')
238 fn_nested_for_in_variadic_args_val('a', 'b', 'c')
239 fn_nested_for_in_variadic_args_both('a', 'b', 'c')
240}
241
242fn test_for_in_string_simple() {
243 for _ in 'abcd' {
244 assert true
245 }
246}
247
248fn test_for_in_string_key() {
249 for _, v in 'a' {
250 assert v == `a`
251 }
252}
253
254fn test_for_in_string_val() {
255 for i, _ in 'a' {
256 assert i == 0
257 }
258}
259
260fn test_for_in_string_both() {
261 for _, _ in 'abcd' {
262 assert true
263 }
264}
265
266fn test_nested_for_in_string_simple() {
267 for _ in 'abcd' {
268 for _ in 'abcd' {
269 assert true
270 }
271 }
272}
273
274fn test_nested_for_in_string_key() {
275 for _, v in 'a' {
276 assert v == `a`
277 for _, w in 'a' {
278 assert w == `a`
279 }
280 }
281}
282
283fn test_nested_for_in_string_val() {
284 for i, _ in 'a' {
285 assert i == 0
286 for j, _ in 'a' {
287 assert j == 0
288 }
289 }
290}
291
292fn test_nested_for_in_string_both() {
293 for _, _ in 'abcd' {
294 for _, _ in 'abcd' {
295 assert true
296 }
297 }
298}
299
300fn multi_return() (int, int, string) {
301 return 1, 2, '3'
302}
303
304fn test_blank_multi_return() {
305 _, a, b := multi_return()
306 c, _, d := multi_return()
307 e, f, _ := multi_return()
308 _, _, g := multi_return()
309 _, h, _ := multi_return()
310 i, _, _ := multi_return()
311 _, _, _ := multi_return()
312 assert c == 1
313 assert e == 1
314 assert i == 1
315 assert a == 2
316 assert f == 2
317 assert h == 2
318 assert b == '3'
319 assert d == '3'
320 assert g == '3'
321}
322
323fn test_blank_in_for_c_init_stmt() {
324 a := []int{len: 2}
325 for _ := a[1]; a[1] != 0; {
326 }
327 assert true
328}
329