mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
36 lines
536 B
V
36 lines
536 B
V
fn gfn1<T>(var T) T {
|
|
return var
|
|
}
|
|
|
|
fn gfn2<T>(var T) T {
|
|
return gfn1<T>(var)
|
|
}
|
|
|
|
fn gfn3<T>(var T) T {
|
|
return gfn2<T>(var)
|
|
}
|
|
|
|
fn gfn4<T>(var T) T {
|
|
return gfn3<T>(var)
|
|
}
|
|
|
|
// don't give concrete types
|
|
fn gfn2_infer<T>(var T) T {
|
|
return gfn1(var)
|
|
}
|
|
|
|
fn gfn3_infer<T>(var T) T {
|
|
return gfn2_infer(var)
|
|
}
|
|
|
|
fn gfn4_infer<T>(var T) T {
|
|
return gfn3_infer(var)
|
|
}
|
|
|
|
fn test_generics_with_cascaded_multiple_nested_generics_fn() {
|
|
println(gfn4(1234))
|
|
assert gfn4(1234) == 1234
|
|
println(gfn4_infer(1234))
|
|
assert gfn4_infer(1234) == 1234
|
|
}
|