v4 / vlib / v / tests / interfaces / interface_method_closure_test.v
23 lines · 19 sloc · 276 bytes · 42638cb17169e8d54f7a3ec3abd7b62e9d9fb440
Raw
1interface Doer {
2 job string
3}
4
5fn (d Doer) do() string {
6 return '${d.job}'
7}
8
9struct Expector {
10 do_fn fn () string @[required]
11}
12
13struct Actioner {
14 job string
15}
16
17fn test_main() {
18 a := &Actioner{'dier'}
19 e := Expector{
20 do_fn: Doer(a).do
21 }
22 assert e.do_fn() == 'dier'
23}
24