// compile // Copyright 2013 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Issue 5231: method values lose their variadic property. package p type T int func (t T) NotVariadic(s []int) int { return int(t) + s[0] } func (t T) Variadic(s ...int) int { return int(t) + s[0] } type I interface { NotVariadic(s []int) int Variadic(s ...int) int } func F() { var t T var p *T = &t var i I = p nv := t.NotVariadic nv = p.NotVariadic nv = i.NotVariadic var s int = nv([]int{1, 2, 3}) v := t.Variadic v = p.Variadic v = i.Variadic s = v(1, 2, 3) var f1 func([]int) int = nv var f2 func(...int) int = v _, _, _ = f1, f2, s }