]> Cypherpunks.ru repositories - gostls13.git/blob - test/fixedbugs/bug336.go
fbf23207c2ee922bdfd389db196469d59ebcffc9
[gostls13.git] / test / fixedbugs / bug336.go
1 // run
2
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
7 package main
8
9 type T1 struct {
10         Next *T2
11 }
12
13 type T2 T1
14
15 type T3 struct {
16         Next *T4
17 }
18
19 type T4 T5
20 type T5 T6
21 type T6 T7
22 type T7 T8
23 type T8 T9
24 type T9 T3
25
26 type T10 struct {
27         x struct {
28                 y ***struct {
29                         z *struct {
30                                 Next *T11
31                         }
32                 }
33         }
34 }
35
36 type T11 T10
37
38 type T12 struct {
39         F1 *T15
40         F2 *T13
41         F3 *T16
42 }
43
44 type T13 T14
45 type T14 T15
46 type T15 T16
47 type T16 T17
48 type T17 T12
49
50 // issue 1672
51 type T18 *[10]T19
52 type T19 T18
53
54 func 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 }