| // run |
| |
| // 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) |
| } |