aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/testdata/check/cycles3.src
blob: 5e89b627f00a76b8b9dd3c69be2a85f473696cd5 (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 p

import "unsafe"

var (
	_ A = A(nil).a().b().c().d().e().f()
	_ A = A(nil).b().c().d().e().f()
	_ A = A(nil).c().d().e().f()
	_ A = A(nil).d().e().f()
	_ A = A(nil).e().f()
	_ A = A(nil).f()
	_ A = A(nil)
)

type (
	A interface {
		a() B
		B
	}

	B interface {
		b() C
		C
	}

	C interface {
		c() D
		D
	}

	D interface {
		d() E
		E
	}

	E interface {
		e() F
		F
	}

	F interface {
		f() A
	}
)

type (
	U /* ERROR cycle */ interface {
		V
	}

	V interface {
		v() [unsafe.Sizeof(u)]int
	}
)

var u U