v2 / vlib / v / tests / generics / generics_method_with_embedded_structs_test.v
46 lines · 37 sloc · 445 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Base {
2 i int
3}
4
5struct Base1 {
6 Base
7}
8
9struct Base2 {
10 Base
11}
12
13struct Struct1 {
14 Base1
15}
16
17struct Struct1O {
18 Struct1
19}
20
21struct Struct2 {
22 Base2
23}
24
25struct Struct2O {
26 Struct2
27}
28
29fn (b &Base) func[T]() T {
30 t := T{
31 i: b.i
32 }
33 if t.i == 0 {
34 }
35 return t
36}
37
38fn test_generic_fn_with_embedded_structs() {
39 s1 := Struct1{}
40 s2 := Struct2{}
41 res1 := s1.func[Struct1O]()
42 res2 := s2.func[Struct2O]()
43
44 assert res1.i == 0
45 assert res2.i == 0
46}
47