fix: handle set of variadic arg list for a ... value
This commit is contained in:
20
_test/variadic6.go
Normal file
20
_test/variadic6.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type A struct {
|
||||
}
|
||||
|
||||
func (a A) f(vals ...bool) {
|
||||
for _, v := range vals {
|
||||
fmt.Println(v)
|
||||
}
|
||||
}
|
||||
func main() {
|
||||
bools := []bool{true}
|
||||
a := A{}
|
||||
a.f(bools...)
|
||||
}
|
||||
|
||||
// Output:
|
||||
// true
|
||||
@@ -821,7 +821,11 @@ func call(n *node) {
|
||||
d.Set(src)
|
||||
}
|
||||
case variadic >= 0 && i >= variadic:
|
||||
vararg.Set(reflect.Append(vararg, v(f)))
|
||||
if v(f).Type() == vararg.Type() {
|
||||
vararg.Set(v(f))
|
||||
} else {
|
||||
vararg.Set(reflect.Append(vararg, v(f)))
|
||||
}
|
||||
default:
|
||||
dest[i].Set(v(f))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user