mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
parser: fix forwarding vargs & multiple call varg len fix
This commit is contained in:
committed by
Alexander Medvednikov
parent
de8297c983
commit
fe9d884d90
@@ -2,6 +2,7 @@ struct VaTestGroup {
|
||||
name string
|
||||
}
|
||||
|
||||
// basic
|
||||
fn variadic_test(name string, groups ...VaTestGroup) {
|
||||
assert groups.len == 2
|
||||
assert groups[0].name == 'users'
|
||||
@@ -14,6 +15,7 @@ fn test_fn_variadic() {
|
||||
variadic_test('joe', group1, group2)
|
||||
}
|
||||
|
||||
// generic
|
||||
fn variadic_test_generic<T>(a int, b ...T) T {
|
||||
b1 := b[0]
|
||||
b2 := b[1]
|
||||
@@ -23,3 +25,19 @@ fn variadic_test_generic<T>(a int, b ...T) T {
|
||||
fn test_fn_variadic_generic() {
|
||||
assert variadic_test_generic(111, 'hello', 'v') == '111 hello v'
|
||||
}
|
||||
|
||||
// forwarding
|
||||
fn variadic_forward_a(a ...string) string {
|
||||
return variadic_forward_b(a)
|
||||
}
|
||||
|
||||
fn variadic_forward_b(a ...string) string {
|
||||
a0 := a[0]
|
||||
a1 := a[1]
|
||||
a2 := a[2]
|
||||
return '$a0$a1$a2'
|
||||
}
|
||||
|
||||
fn test_fn_variadic_forward() {
|
||||
assert variadic_forward_a('a', 'b', 'c') == 'abc'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user