Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.0.1-2020.1.5 / unused / testdata / src / fields / fields.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/unused/testdata/src/fields/fields.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/unused/testdata/src/fields/fields.go
new file mode 100644 (file)
index 0000000..8b07c81
--- /dev/null
@@ -0,0 +1,67 @@
+// Test of field usage detection
+
+package pkg
+
+type t1 struct{ f11, f12 int }
+type t2 struct{ f21, f22 int }
+type t3 struct{ f31 t4 }
+type t4 struct{ f41 int }
+type t5 struct{ f51 int }
+type t6 struct{ f61 int }
+type t7 struct{ f71 int }
+type m1 map[string]t7
+type t8 struct{ f81 int }
+type t9 struct{ f91 int }
+type t10 struct{ f101 int }
+type t11 struct{ f111 int }
+type s1 []t11
+type t12 struct{ f121 int }
+type s2 []t12
+type t13 struct{ f131 int }
+type t14 struct{ f141 int }
+type a1 [1]t14
+type t15 struct{ f151 int }
+type a2 [1]t15
+type t16 struct{ f161 int }
+type t17 struct{ f171, f172 int }       // want `t17`
+type t18 struct{ f181, f182, f183 int } // want `f182` `f183`
+
+type t19 struct{ f191 int }
+type m2 map[string]t19
+
+type t20 struct{ f201 int }
+type m3 map[string]t20
+
+type t21 struct{ f211, f212 int } // want `f211`
+
+func foo() {
+       _ = t10{1}
+       _ = t21{f212: 1}
+       _ = []t1{{1, 2}}
+       _ = t2{1, 2}
+       _ = []struct{ a int }{{1}}
+
+       // XXX
+       // _ = []struct{ foo struct{ bar int } }{{struct{ bar int }{1}}}
+
+       _ = []t1{t1{1, 2}}
+       _ = []t3{{t4{1}}}
+       _ = map[string]t5{"a": {1}}
+       _ = map[t6]string{{1}: "a"}
+       _ = m1{"a": {1}}
+       _ = map[t8]t8{{}: {1}}
+       _ = map[t9]t9{{1}: {}}
+       _ = s1{{1}}
+       _ = s2{2: {1}}
+       _ = [...]t13{{1}}
+       _ = a1{{1}}
+       _ = a2{0: {1}}
+       _ = map[[1]t16]int{{{1}}: 1}
+       y := struct{ x int }{}
+       _ = y
+       _ = t18{f181: 1}
+       _ = []m2{{"a": {1}}}
+       _ = [][]m3{{{"a": {1}}}}
+}
+
+func init() { foo() }