blob: 10b6f190bac34c68bbb1f56604a31efb37dd4d6c [file] [log] [blame]
// 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 cycles
type (
T0 int
T1 /* ERROR "cycle" */ T1
T2 *T2
T3 /* ERROR "cycle" */ T4
T4 T5
T5 T3
T6 T7
T7 *T8
T8 T6
// arrays
A0 /* ERROR "cycle" */ [10]A0
A1 [10]*A1
A2 /* ERROR "cycle" */ [10]A3
A3 [10]A4
A4 A2
A5 [10]A6
A6 *A5
// slices
L0 []L0
// structs
S0 /* ERROR "cycle" */ struct{ _ S0 }
S1 /* ERROR "cycle" */ struct{ S1 }
S2 struct{ _ *S2 }
S3 struct{ *S3 }
S4 /* ERROR "cycle" */ struct{ S5 }
S5 struct{ S6 }
S6 S4
// pointers
P0 *P0
// functions
F0 func(F0)
F1 func() F1
F2 func(F2) F2
// interfaces
I0 /* ERROR "cycle" */ interface{ I0 }
I1 /* ERROR "cycle" */ interface{ I2 }
I2 interface{ I3 }
I3 interface{ I1 }
I4 interface{ f(I4) }
// testcase for issue 5090
I5 interface{ f(I6) }
I6 interface{ I5 }
// maps
M0 map[M0 /* ERROR "invalid map key" */ ]M0
// channels
C0 chan C0
)
func _() {
type (
t1 /* ERROR "cycle" */ t1
t2 *t2
t3 t4 /* ERROR "undeclared" */
t4 t5 /* ERROR "undeclared" */
t5 t3
// arrays
a0 /* ERROR "cycle" */ [10]a0
a1 [10]*a1
// slices
l0 []l0
// structs
s0 /* ERROR "cycle" */ struct{ _ s0 }
s1 /* ERROR "cycle" */ struct{ s1 }
s2 struct{ _ *s2 }
s3 struct{ *s3 }
// pointers
p0 *p0
// functions
f0 func(f0)
f1 func() f1
f2 func(f2) f2
// interfaces
i0 /* ERROR "cycle" */ interface{ i0 }
// maps
m0 map[m0 /* ERROR "invalid map key" */ ]m0
// channels
c0 chan c0
)
}