blob: fbf23207c2ee922bdfd389db196469d59ebcffc9 [file] [log] [blame]
Russ Cox80803842012-02-16 23:49:59 -05001// run
Lorenzo Stoakesb6f06322011-04-28 00:13:49 -04002
3// Copyright 2011 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package main
8
9type T1 struct {
10 Next *T2
11}
12
13type T2 T1
14
15type T3 struct {
16 Next *T4
17}
18
19type T4 T5
20type T5 T6
21type T6 T7
22type T7 T8
23type T8 T9
24type T9 T3
25
26type T10 struct {
27 x struct {
28 y ***struct {
29 z *struct {
30 Next *T11
31 }
32 }
33 }
34}
35
36type T11 T10
37
38type T12 struct {
39 F1 *T15
40 F2 *T13
41 F3 *T16
42}
43
44type T13 T14
45type T14 T15
46type T15 T16
47type T16 T17
48type T17 T12
49
50// issue 1672
51type T18 *[10]T19
52type T19 T18
53
54func main() {
55 _ = &T1{&T2{}}
56 _ = &T2{&T2{}}
57 _ = &T3{&T4{}}
58 _ = &T4{&T4{}}
59 _ = &T5{&T4{}}
60 _ = &T6{&T4{}}
61 _ = &T7{&T4{}}
62 _ = &T8{&T4{}}
63 _ = &T9{&T4{}}
64 _ = &T12{&T15{}, &T13{}, &T16{}}
65
66 var (
67 tn struct{ Next *T11 }
68 tz struct{ z *struct{ Next *T11 } }
69 tpz *struct{ z *struct{ Next *T11 } }
70 tppz **struct{ z *struct{ Next *T11 } }
71 tpppz ***struct{ z *struct{ Next *T11 } }
72 ty struct {
73 y ***struct{ z *struct{ Next *T11 } }
74 }
75 )
76 tn.Next = &T11{}
77 tz.z = &tn
78 tpz = &tz
79 tppz = &tpz
80 tpppz = &tppz
81 ty.y = tpppz
82 _ = &T10{ty}
83
84 t19s := &[10]T19{}
85 _ = T18(t19s)
86}