modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue5755.dir/a.go (about)

     1  // Copyright 2013 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  
     5  package a
     6  
     7  type I interface {
     8  	F()
     9  }
    10  
    11  type foo1 []byte
    12  type foo2 []rune
    13  type foo3 []uint8
    14  type foo4 []int32
    15  type foo5 string
    16  type foo6 string
    17  type foo7 string
    18  type foo8 string
    19  type foo9 string
    20  
    21  func (f foo1) F() { return }
    22  func (f foo2) F() { return }
    23  func (f foo3) F() { return }
    24  func (f foo4) F() { return }
    25  func (f foo5) F() { return }
    26  func (f foo6) F() { return }
    27  func (f foo7) F() { return }
    28  func (f foo8) F() { return }
    29  func (f foo9) F() { return }
    30  
    31  func Test1(s string) I  { return foo1(s) }
    32  func Test2(s string) I  { return foo2(s) }
    33  func Test3(s string) I  { return foo3(s) }
    34  func Test4(s string) I  { return foo4(s) }
    35  func Test5(s []byte) I  { return foo5(s) }
    36  func Test6(s []rune) I  { return foo6(s) }
    37  func Test7(s []uint8) I { return foo7(s) }
    38  func Test8(s []int32) I { return foo8(s) }
    39  func Test9(s int) I     { return foo9(s) }
    40  
    41  type bar map[int]int
    42  
    43  func (b bar) F() { return }
    44  
    45  func TestBar() I { return bar{1: 2} }
    46  
    47  type baz int
    48  
    49  func IsBaz(x interface{}) bool { _, ok := x.(baz); return ok }
    50  
    51  type baz2 int
    52  
    53  func IsBaz2(x interface{}) bool {
    54  	switch x.(type) {
    55  	case baz2:
    56  		return true
    57  	default:
    58  		return false
    59  	}
    60  }