v/vlib/v/checker/tests/generics_struct_field_fn_ar...

36 lines
472 B
V

fn get_int() int {
return 42
}
fn dub_int(i int) int {
return i * 2
}
struct Fun<F> {
mut:
call F
}
type FunZero = fn () int
fn main() {
fun0 := Fun<FunZero>{
call: get_int
}
println(fun0.call())
println(fun0.call(1234))
println(fun0.call(1234, 5678))
fun1 := Fun<fn (int) int>{
call: dub_int
}
println(fun1.call(42))
println(fun1.call())
println(fun1.call(42, 43))
println(fun1.call(true))
println(fun1.call('text'))
println(fun1.call(22.2))
}