v2 / vlib / v / tests / generics / generics_struct_anon_fn_fields_test.v
35 lines · 31 sloc · 791 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Scope[T] {
2 before fn () T
3 specs []fn (T) T
4 after fn (T)
5}
6
7fn test_generics_struct_anon_fn_fields() {
8 s1 := Scope[u32]{}
9 println(s1)
10 ts1 := '${s1}'
11 assert ts1.contains('before: fn () u32')
12 assert ts1.contains('specs: []')
13 assert ts1.contains('after: fn (u32)')
14
15 s2 := Scope[f64]{}
16 println(s2)
17 ts2 := '${s2}'
18 assert ts2.contains('before: fn () f64')
19 assert ts2.contains('specs: []')
20 assert ts2.contains('after: fn (f64)')
21
22 s3 := Scope[string]{}
23 println(s3)
24 ts3 := '${s3}'
25 assert ts3.contains('before: fn () string')
26 assert ts3.contains('specs: []')
27 assert ts3.contains('after: fn (string)')
28
29 s4 := Scope[bool]{}
30 println(s4)
31 ts4 := '${s4}'
32 assert ts4.contains('before: fn () bool')
33 assert ts4.contains('specs: []')
34 assert ts4.contains('after: fn (bool)')
35}
36