1// errorcheck
2
3// Copyright 2013 The Go Authors.  All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package p
8
9type T interface {
10	F1(i int) (i int) // ERROR "duplicate argument i|redefinition|previous"
11	F2(i, i int) // ERROR "duplicate argument i|redefinition|previous"
12	F3() (i, i int) // ERROR "duplicate argument i|redefinition|previous"
13}
14
15type T1 func(i, i int) // ERROR "duplicate argument i|redefinition|previous"
16type T2 func(i int) (i int) // ERROR "duplicate argument i|redefinition|previous"
17type T3 func() (i, i int) // ERROR "duplicate argument i|redefinition|previous"
18
19type R struct{}
20
21func (i *R) F1(i int)         {} // ERROR "duplicate argument i|redefinition|previous"
22func (i *R) F2() (i int)      {return 0} // ERROR "duplicate argument i|redefinition|previous"
23func (i *R) F3(j int) (j int) {return 0} // ERROR "duplicate argument j|redefinition|previous"
24
25func F1(i, i int)      {} // ERROR "duplicate argument i|redefinition|previous"
26func F2(i int) (i int) {return 0} // ERROR "duplicate argument i|redefinition|previous"
27func F3() (i, i int)   {return 0, 0} // ERROR "duplicate argument i|redefinition|previous"
28