v2 / vlib / v / tests / generics / generics_method_variable_test.v
21 lines · 18 sloc · 318 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1type Func = fn (string) string
2
3struct Struct[T] {
4 a T
5mut:
6 func Func
7}
8
9fn (st Struct[T]) foo[T](s string) string {
10 println('${st.a} - ${s}')
11 return '${st.a} - ${s}'
12}
13
14fn test_generic_method_variable() {
15 mut st := Struct[int]{
16 a: 22
17 }
18 st.func = st.foo
19 ret := st.func('hello')
20 assert ret == '22 - hello'
21}
22