github.com/serversong/goreporter@v0.0.0-20200325104552-3cfaf44fd178/linters/interfacer/testdata/files/composite.go (about)

     1  package foo
     2  
     3  type mint int
     4  
     5  func (m mint) Close() error {
     6  	return nil
     7  }
     8  
     9  func MapKey(m mint) {
    10  	m.Close()
    11  	_ = map[mint]string{
    12  		m: "foo",
    13  	}
    14  }
    15  
    16  func MapValue(m mint) {
    17  	m.Close()
    18  	_ = map[string]mint{
    19  		"foo": m,
    20  	}
    21  }
    22  
    23  type Fooer interface {
    24  	Foo()
    25  }
    26  
    27  type FooBarer interface {
    28  	Fooer
    29  	Bar()
    30  }
    31  
    32  type holdFooer struct {
    33  	f Fooer
    34  }
    35  
    36  type holdFooBarer struct {
    37  	fb FooBarer
    38  }
    39  
    40  func Correct(fb FooBarer) {
    41  	_ = holdFooBarer{fb: fb}
    42  }
    43  
    44  func CorrectNoKey(fb FooBarer) {
    45  	_ = holdFooBarer{fb}
    46  }
    47  
    48  func Wrong(fb FooBarer) { // WARN fb can be Fooer
    49  	_ = holdFooer{f: fb}
    50  }
    51  
    52  func WrongNoKey(fb FooBarer) { // WARN fb can be Fooer
    53  	_ = holdFooer{fb}
    54  }
    55  
    56  func WrongNoKeyInplace(fb FooBarer) { // WARN fb can be Fooer
    57  	_ = struct {
    58  		f Fooer
    59  	}{fb}
    60  }
    61  
    62  func WrongNoKeyMultiple(fb FooBarer) { // WARN fb can be Fooer
    63  	_ = struct {
    64  		f Fooer
    65  		s string
    66  	}{fb, "bar"}
    67  }
    68  
    69  type holdFooerNested holdFooer
    70  
    71  func WrongNoKeyDeep(fb FooBarer) { // WARN fb can be Fooer
    72  	_ = holdFooerNested{fb}
    73  }
    74  
    75  func WrongNoKeyArray(fb FooBarer) { // WARN fb can be Fooer
    76  	_ = [...]Fooer{fb}
    77  }
    78  
    79  func WrongNoKeySlice(fb FooBarer) { // WARN fb can be Fooer
    80  	_ = []Fooer{fb}
    81  }
    82  
    83  func WrongWalkValue(fb FooBarer) { // WARN fb can be Fooer
    84  	fn := func(f Fooer) Fooer { return f }
    85  	_ = []Fooer{fn(fb)}
    86  }