1
0
mirror of https://github.com/golang/go synced 2024-11-05 17:46:16 -07:00
go/test/fixedbugs/issue5231.go
Rémy Oudompheng 20e05303fe cmd/gc: properly set variadic flag on method values.
Fixes #5231.

R=golang-dev, daniel.morsing, adg
CC=golang-dev
https://golang.org/cl/8275044
2013-04-08 08:59:33 +02:00

46 lines
743 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
}