mirror of
https://github.com/golang/go
synced 2024-09-05 16:04:50 +00:00
![Emmanuel Odeke](/assets/img/avatar_default.png)
Follows suit with https://go-review.googlesource.com/#/c/20111. Generated by running $ grep -R 'Go Authors. All' * | cut -d":" -f1 | while read F;do perl -pi -e 's/Go Authors. All/Go Authors. All/g' $F;done The code in cmd/internal/unvendor wasn't changed. Fixes #15213 Change-Id: I4f235cee0a62ec435f9e8540a1ec08ae03b1a75f Reviewed-on: https://go-review.googlesource.com/21819 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
46 lines
742 B
Go
46 lines
742 B
Go
// 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
|
|
}
|