honnef.co/go/tools@v0.5.0-0.dev.0.20240520180541-dcae280a5e87/unused/testdata/src/example.com/interfaces/interfaces.go (about) 1 package pkg 2 3 type I interface { //@ used("I", true) 4 fn1() //@ used("fn1", true) 5 } 6 7 type t struct{} //@ used("t", true) 8 9 func (t) fn1() {} //@ used("fn1", true) 10 func (t) fn2() {} //@ used("fn2", false) 11 12 func init() { //@ used("init", true) 13 _ = t{} 14 } 15 16 type I1 interface { //@ used("I1", true) 17 Foo() //@ used("Foo", true) 18 } 19 20 type I2 interface { //@ used("I2", true) 21 Foo() //@ used("Foo", true) 22 bar() //@ used("bar", true) 23 } 24 25 type i3 interface { //@ used("i3", false) 26 foo() //@ quiet("foo") 27 bar() //@ quiet("bar") 28 } 29 30 type t1 struct{} //@ used("t1", true) 31 type t2 struct{} //@ used("t2", true) 32 type t3 struct{} //@ used("t3", true) 33 type t4 struct { //@ used("t4", true) 34 t3 //@ used("t3", true) 35 } 36 37 func (t1) Foo() {} //@ used("Foo", true) 38 func (t2) Foo() {} //@ used("Foo", true) 39 func (t2) bar() {} //@ used("bar", true) 40 func (t3) Foo() {} //@ used("Foo", true) 41 func (t3) bar() {} //@ used("bar", true) 42 43 func Fn() { //@ used("Fn", true) 44 var v1 t1 //@ used("v1", true) 45 var v2 t2 //@ used("v2", true) 46 var v3 t3 //@ used("v3", true) 47 var v4 t4 //@ used("v4", true) 48 _ = v1 49 _ = v2 50 _ = v3 51 var x interface{} = v4 //@ used("x", true) 52 _ = x.(I2) 53 } 54 55 // Text pointer receivers 56 type T2 struct{} //@ used("T2", true) 57 58 func (*T2) fn1() {} //@ used("fn1", true) 59 func (*T2) fn2() {} //@ used("fn2", false)