1// Copyright 2020 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package testdata 6 7type T struct { 8 x, y int 9} 10 11type T2 struct { 12 w, z int 13} 14 15var _ = [42]T{ 16 T{}, // want "redundant type from array, slice, or map composite literal" 17 T{1, 2}, // want "redundant type from array, slice, or map composite literal" 18 T{3, 4}, // want "redundant type from array, slice, or map composite literal" 19} 20 21var _ = [...]T{ 22 T{}, // want "redundant type from array, slice, or map composite literal" 23 T{1, 2}, // want "redundant type from array, slice, or map composite literal" 24 T{3, 4}, // want "redundant type from array, slice, or map composite literal" 25} 26 27var _ = []T{ 28 T{}, // want "redundant type from array, slice, or map composite literal" 29 T{1, 2}, // want "redundant type from array, slice, or map composite literal" 30 T{3, 4}, // want "redundant type from array, slice, or map composite literal" 31} 32 33var _ = []T{ 34 T{}, // want "redundant type from array, slice, or map composite literal" 35 10: T{1, 2}, // want "redundant type from array, slice, or map composite literal" 36 20: T{3, 4}, // want "redundant type from array, slice, or map composite literal" 37} 38 39var _ = []struct { 40 x, y int 41}{ 42 struct{ x, y int }{}, // want "redundant type from array, slice, or map composite literal" 43 10: struct{ x, y int }{1, 2}, // want "redundant type from array, slice, or map composite literal" 44 20: struct{ x, y int }{3, 4}, // want "redundant type from array, slice, or map composite literal" 45} 46 47var _ = []interface{}{ 48 T{}, 49 10: T{1, 2}, 50 20: T{3, 4}, 51} 52 53var _ = [][]int{ 54 []int{}, // want "redundant type from array, slice, or map composite literal" 55 []int{1, 2}, // want "redundant type from array, slice, or map composite literal" 56 []int{3, 4}, // want "redundant type from array, slice, or map composite literal" 57} 58 59var _ = [][]int{ 60 ([]int{}), 61 ([]int{1, 2}), 62 []int{3, 4}, // want "redundant type from array, slice, or map composite literal" 63} 64 65var _ = [][][]int{ 66 [][]int{}, // want "redundant type from array, slice, or map composite literal" 67 [][]int{ // want "redundant type from array, slice, or map composite literal" 68 []int{}, // want "redundant type from array, slice, or map composite literal" 69 []int{0, 1, 2, 3}, // want "redundant type from array, slice, or map composite literal" 70 []int{4, 5}, // want "redundant type from array, slice, or map composite literal" 71 }, 72} 73 74var _ = map[string]T{ 75 "foo": T{}, // want "redundant type from array, slice, or map composite literal" 76 "bar": T{1, 2}, // want "redundant type from array, slice, or map composite literal" 77 "bal": T{3, 4}, // want "redundant type from array, slice, or map composite literal" 78} 79 80var _ = map[string]struct { 81 x, y int 82}{ 83 "foo": struct{ x, y int }{}, // want "redundant type from array, slice, or map composite literal" 84 "bar": struct{ x, y int }{1, 2}, // want "redundant type from array, slice, or map composite literal" 85 "bal": struct{ x, y int }{3, 4}, // want "redundant type from array, slice, or map composite literal" 86} 87 88var _ = map[string]interface{}{ 89 "foo": T{}, 90 "bar": T{1, 2}, 91 "bal": T{3, 4}, 92} 93 94var _ = map[string][]int{ 95 "foo": []int{}, // want "redundant type from array, slice, or map composite literal" 96 "bar": []int{1, 2}, // want "redundant type from array, slice, or map composite literal" 97 "bal": []int{3, 4}, // want "redundant type from array, slice, or map composite literal" 98} 99 100var _ = map[string][]int{ 101 "foo": ([]int{}), 102 "bar": ([]int{1, 2}), 103 "bal": []int{3, 4}, // want "redundant type from array, slice, or map composite literal" 104} 105 106type Point struct { 107 a int 108 b int 109} 110 111type Piece struct { 112 a int 113 b int 114 c Point 115 d []Point 116 e *Point 117 f *Point 118} 119 120// from exp/4s/data.go 121var pieces3 = []Piece{ 122 Piece{0, 0, Point{4, 1}, []Point{Point{0, 0}, Point{1, 0}, Point{1, 0}, Point{1, 0}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 123 Piece{1, 0, Point{1, 4}, []Point{Point{0, 0}, Point{0, 1}, Point{0, 1}, Point{0, 1}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 124 Piece{2, 0, Point{4, 1}, []Point{Point{0, 0}, Point{1, 0}, Point{1, 0}, Point{1, 0}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 125 Piece{3, 0, Point{1, 4}, []Point{Point{0, 0}, Point{0, 1}, Point{0, 1}, Point{0, 1}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 126} 127 128var _ = [42]*T{ 129 &T{}, // want "redundant type from array, slice, or map composite literal" 130 &T{1, 2}, // want "redundant type from array, slice, or map composite literal" 131 &T{3, 4}, // want "redundant type from array, slice, or map composite literal" 132} 133 134var _ = [...]*T{ 135 &T{}, // want "redundant type from array, slice, or map composite literal" 136 &T{1, 2}, // want "redundant type from array, slice, or map composite literal" 137 &T{3, 4}, // want "redundant type from array, slice, or map composite literal" 138} 139 140var _ = []*T{ 141 &T{}, // want "redundant type from array, slice, or map composite literal" 142 &T{1, 2}, // want "redundant type from array, slice, or map composite literal" 143 &T{3, 4}, // want "redundant type from array, slice, or map composite literal" 144} 145 146var _ = []*T{ 147 &T{}, // want "redundant type from array, slice, or map composite literal" 148 10: &T{1, 2}, // want "redundant type from array, slice, or map composite literal" 149 20: &T{3, 4}, // want "redundant type from array, slice, or map composite literal" 150} 151 152var _ = []*struct { 153 x, y int 154}{ 155 &struct{ x, y int }{}, // want "redundant type from array, slice, or map composite literal" 156 10: &struct{ x, y int }{1, 2}, // want "redundant type from array, slice, or map composite literal" 157 20: &struct{ x, y int }{3, 4}, // want "redundant type from array, slice, or map composite literal" 158} 159 160var _ = []interface{}{ 161 &T{}, 162 10: &T{1, 2}, 163 20: &T{3, 4}, 164} 165 166var _ = []*[]int{ 167 &[]int{}, // want "redundant type from array, slice, or map composite literal" 168 &[]int{1, 2}, // want "redundant type from array, slice, or map composite literal" 169 &[]int{3, 4}, // want "redundant type from array, slice, or map composite literal" 170} 171 172var _ = []*[]int{ 173 (&[]int{}), 174 (&[]int{1, 2}), 175 &[]int{3, 4}, // want "redundant type from array, slice, or map composite literal" 176} 177 178var _ = []*[]*[]int{ 179 &[]*[]int{}, // want "redundant type from array, slice, or map composite literal" 180 &[]*[]int{ // want "redundant type from array, slice, or map composite literal" 181 &[]int{}, // want "redundant type from array, slice, or map composite literal" 182 &[]int{0, 1, 2, 3}, // want "redundant type from array, slice, or map composite literal" 183 &[]int{4, 5}, // want "redundant type from array, slice, or map composite literal" 184 }, 185} 186 187var _ = map[string]*T{ 188 "foo": &T{}, // want "redundant type from array, slice, or map composite literal" 189 "bar": &T{1, 2}, // want "redundant type from array, slice, or map composite literal" 190 "bal": &T{3, 4}, // want "redundant type from array, slice, or map composite literal" 191} 192 193var _ = map[string]*struct { 194 x, y int 195}{ 196 "foo": &struct{ x, y int }{}, // want "redundant type from array, slice, or map composite literal" 197 "bar": &struct{ x, y int }{1, 2}, // want "redundant type from array, slice, or map composite literal" 198 "bal": &struct{ x, y int }{3, 4}, // want "redundant type from array, slice, or map composite literal" 199} 200 201var _ = map[string]interface{}{ 202 "foo": &T{}, 203 "bar": &T{1, 2}, 204 "bal": &T{3, 4}, 205} 206 207var _ = map[string]*[]int{ 208 "foo": &[]int{}, // want "redundant type from array, slice, or map composite literal" 209 "bar": &[]int{1, 2}, // want "redundant type from array, slice, or map composite literal" 210 "bal": &[]int{3, 4}, // want "redundant type from array, slice, or map composite literal" 211} 212 213var _ = map[string]*[]int{ 214 "foo": (&[]int{}), 215 "bar": (&[]int{1, 2}), 216 "bal": &[]int{3, 4}, // want "redundant type from array, slice, or map composite literal" 217} 218 219var pieces4 = []*Piece{ 220 &Piece{0, 0, Point{4, 1}, []Point{Point{0, 0}, Point{1, 0}, Point{1, 0}, Point{1, 0}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 221 &Piece{1, 0, Point{1, 4}, []Point{Point{0, 0}, Point{0, 1}, Point{0, 1}, Point{0, 1}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 222 &Piece{2, 0, Point{4, 1}, []Point{Point{0, 0}, Point{1, 0}, Point{1, 0}, Point{1, 0}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 223 &Piece{3, 0, Point{1, 4}, []Point{Point{0, 0}, Point{0, 1}, Point{0, 1}, Point{0, 1}}, nil, nil}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 224} 225 226var _ = map[T]T2{ 227 T{1, 2}: T2{3, 4}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 228 T{5, 6}: T2{7, 8}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 229} 230 231var _ = map[*T]*T2{ 232 &T{1, 2}: &T2{3, 4}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 233 &T{5, 6}: &T2{7, 8}, // want "redundant type from array, slice, or map composite literal" "redundant type from array, slice, or map composite literal" 234} 235