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)