mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
compiler: fix panic when dealing with variadic functions
This commit is contained in:
@@ -41,3 +41,36 @@ fn variadic_forward_b(a ...string) string {
|
||||
fn test_fn_variadic_forward() {
|
||||
assert variadic_forward_a('a', 'b', 'c') == 'abc'
|
||||
}
|
||||
|
||||
fn variadic_test_no_args(name string, groups ...VaTestGroup) {
|
||||
assert groups.len == 0
|
||||
}
|
||||
|
||||
fn test_fn_variadic_no_args() {
|
||||
variadic_test_no_args('marko')
|
||||
}
|
||||
|
||||
struct VaTestStruct {
|
||||
}
|
||||
|
||||
fn (a VaTestStruct) variadic_method(name string, groups ...VaTestGroup) {
|
||||
assert groups.len == 2
|
||||
assert groups[0].name == 'users'
|
||||
assert groups[1].name == 'admins'
|
||||
}
|
||||
|
||||
fn (a VaTestStruct) variadic_method_no_args(name string, groups ...VaTestGroup) {
|
||||
assert groups.len == 0
|
||||
}
|
||||
|
||||
fn test_fn_variadic_method() {
|
||||
a := VaTestStruct{}
|
||||
group1 := VaTestGroup{name: 'users'}
|
||||
group2 := VaTestGroup{name: 'admins'}
|
||||
a.variadic_method('marko', group1, group2)
|
||||
}
|
||||
|
||||
fn test_fn_variadic_method_no_args() {
|
||||
a := VaTestStruct{}
|
||||
a.variadic_method_no_args('marko')
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user