summaryrefslogtreecommitdiffstats
path: root/test/fixedbugs/issue5755.dir/a.go
blob: aa398e82b257c1b0213445d52377cc74f0640088 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package a

type I interface {
	F()
}

type foo1 []byte
type foo2 []rune
type foo3 []uint8
type foo4 []int32
type foo5 string
type foo6 string
type foo7 string
type foo8 string
type foo9 string

func (f foo1) F() { return }
func (f foo2) F() { return }
func (f foo3) F() { return }
func (f foo4) F() { return }
func (f foo5) F() { return }
func (f foo6) F() { return }
func (f foo7) F() { return }
func (f foo8) F() { return }
func (f foo9) F() { return }

func Test1(s string) I  { return foo1(s) }
func Test2(s string) I  { return foo2(s) }
func Test3(s string) I  { return foo3(s) }
func Test4(s string) I  { return foo4(s) }
func Test5(s []byte) I  { return foo5(s) }
func Test6(s []rune) I  { return foo6(s) }
func Test7(s []uint8) I { return foo7(s) }
func Test8(s []int32) I { return foo8(s) }
func Test9(s int) I     { return foo9(s) }

type bar map[int]int

func (b bar) F() { return }

func TestBar() I { return bar{1: 2} }

type baz int

func IsBaz(x interface{}) bool { _, ok := x.(baz); return ok }

type baz2 int

func IsBaz2(x interface{}) bool {
	switch x.(type) {
	case baz2:
		return true
	default:
		return false
	}
}