github.com/serversong/goreporter@v0.0.0-20200325104552-3cfaf44fd178/linters/simpler/testdata/loop-append.go (about)

     1  package pkg
     2  
     3  type T struct {
     4  	F string
     5  }
     6  
     7  func fn1() {
     8  	var x []interface{}
     9  	var y []int
    10  
    11  	for _, v := range y {
    12  		x = append(x, v)
    13  	}
    14  
    15  	var a, b []int
    16  	for _, v := range a { // MATCH /should replace loop/
    17  		b = append(b, v)
    18  	}
    19  
    20  	var m map[string]int
    21  	var c []int
    22  	for _, v := range m {
    23  		c = append(c, v)
    24  	}
    25  
    26  	var t []T
    27  	var m2 map[string][]T
    28  
    29  	for _, tt := range t {
    30  		m2[tt.F] = append(m2[tt.F], tt)
    31  	}
    32  
    33  	var out []T
    34  	for _, tt := range t {
    35  		out = append(m2[tt.F], tt)
    36  	}
    37  	_ = out
    38  }
    39  
    40  func fn2() {
    41  	var v struct {
    42  		V int
    43  	}
    44  	var in []int
    45  	var out []int
    46  
    47  	for _, v.V = range in {
    48  		out = append(out, v.V)
    49  	}
    50  }
    51  
    52  func fn3() {
    53  	var t []T
    54  	var out [][]T
    55  	var m2 map[string][]T
    56  
    57  	for _, tt := range t {
    58  		out = append(out, m2[tt.F])
    59  	}
    60  }
    61  
    62  func fn4() {
    63  	var a, b, c []int
    64  	for _, v := range a {
    65  		b = append(c, v)
    66  	}
    67  	_ = b
    68  }
    69  
    70  func fn5() {
    71  	var t []T
    72  	var m2 map[string][]T
    73  	var out []T
    74  	for _, tt := range t {
    75  		out = append(m2[tt.F], tt)
    76  	}
    77  	_ = out
    78  }