go/test/funcdup.go
Russ Cox 615f289209 cmd/gc: ensure unique parameter and result names in function types
In addition to fixing the bug, the check is now linear instead of quadratic.

Fixes #4469.

R=ken2
CC=golang-dev
https://golang.org/cl/7773047
2013-03-15 15:24:13 -04:00

28 lines
951 B
Go

// errorcheck
// 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.
package p
type T interface {
F1(i int) (i int) // ERROR "duplicate argument i"
F2(i, i int) // ERROR "duplicate argument i"
F3() (i, i int) // ERROR "duplicate argument i"
}
type T1 func(i, i int) // ERROR "duplicate argument i"
type T2 func(i int) (i int) // ERROR "duplicate argument i"
type T3 func() (i, i int) // ERROR "duplicate argument i"
type R struct{}
func (i *R) F1(i int) {} // ERROR "duplicate argument i"
func (i *R) F2() (i int) {return 0} // ERROR "duplicate argument i"
func (i *R) F3(j int) (j int) {return 0} // ERROR "duplicate argument j"
func F1(i, i int) {} // ERROR "duplicate argument i"
func F2(i int) (i int) {return 0} // ERROR "duplicate argument i"
func F3() (i, i int) {return 0, 0} // ERROR "duplicate argument i"