v2 / vlib / v / tests / interfaces / interface_arg_test.v
36 lines · 27 sloc · 373 bytes · e2e5cf8db56f3562c7baa735061690be936bdf3e
Raw
1interface ITest {
2}
3
4struct Test {
5}
6
7struct Cmdable {
8mut:
9 call fn (cmd main.ITest)
10}
11
12fn (t Test) test(a ITest) {}
13
14fn test(a ITest) {}
15
16fn get() &Test {
17 return &Test{}
18}
19
20fn test_main() {
21 mut a := Cmdable{}
22 a.call = test
23 a.call(Test{})
24 test(Test{})
25 Test{}.test(a)
26
27 assert true
28}
29
30fn test_ptr() {
31 mut a := Cmdable{}
32 a.call = test
33 a.call(get())
34
35 assert true
36}
37