| // $G $D/$F.go && $L $F.$A && ./$A.out | |
| // Copyright 2011 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 main | |
| type T1 struct { | |
| Next *T2 | |
| } | |
| type T2 T1 | |
| type T3 struct { | |
| Next *T4 | |
| } | |
| type T4 T5 | |
| type T5 T6 | |
| type T6 T7 | |
| type T7 T8 | |
| type T8 T9 | |
| type T9 T3 | |
| type T10 struct { | |
| x struct { | |
| y ***struct { | |
| z *struct { | |
| Next *T11 | |
| } | |
| } | |
| } | |
| } | |
| type T11 T10 | |
| type T12 struct { | |
| F1 *T15 | |
| F2 *T13 | |
| F3 *T16 | |
| } | |
| type T13 T14 | |
| type T14 T15 | |
| type T15 T16 | |
| type T16 T17 | |
| type T17 T12 | |
| // issue 1672 | |
| type T18 *[10]T19 | |
| type T19 T18 | |
| func main() { | |
| _ = &T1{&T2{}} | |
| _ = &T2{&T2{}} | |
| _ = &T3{&T4{}} | |
| _ = &T4{&T4{}} | |
| _ = &T5{&T4{}} | |
| _ = &T6{&T4{}} | |
| _ = &T7{&T4{}} | |
| _ = &T8{&T4{}} | |
| _ = &T9{&T4{}} | |
| _ = &T12{&T15{}, &T13{}, &T16{}} | |
| var ( | |
| tn struct{ Next *T11 } | |
| tz struct{ z *struct{ Next *T11 } } | |
| tpz *struct{ z *struct{ Next *T11 } } | |
| tppz **struct{ z *struct{ Next *T11 } } | |
| tpppz ***struct{ z *struct{ Next *T11 } } | |
| ty struct { | |
| y ***struct{ z *struct{ Next *T11 } } | |
| } | |
| ) | |
| tn.Next = &T11{} | |
| tz.z = &tn | |
| tpz = &tz | |
| tppz = &tpz | |
| tpppz = &tppz | |
| ty.y = tpppz | |
| _ = &T10{ty} | |
| t19s := &[10]T19{} | |
| _ = T18(t19s) | |
| } |