v4 / vlib / v / checker / tests / non_matching_functional_args.vv
33 lines · 27 sloc · 369 bytes · f374e37b611d9177660e5feb367f8721dcdf3991
Raw
1struct Table {
2pub mut:
3 name string
4}
5
6type MyFn = fn (zzzz Table)
7
8fn (mut t Table) rename() {
9 t.name = 'abc'
10}
11
12fn yyy(t Table) {
13 println(t.name)
14}
15
16fn xxx(mut mytable Table) {
17 mytable.rename()
18 println(mytable.name)
19}
20
21fn sum(myfn MyFn) {
22 mut t := Table{}
23 myfn(t)
24}
25
26fn main() {
27 sum(fn (mut t Table) {
28 t.rename()
29 println(t.name)
30 })
31 sum(xxx)
32 sum(yyy)
33}
34