OSDN Git Service

Add Go frontend, libgo library, and Go testsuite.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / go.test / test / fixedbugs / bug054.go
1 // $G $D/$F.go && $L $F.$A && ./$A.out
2
3 // Copyright 2009 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 Element interface {
10 }
11
12 type Vector struct {
13         elem []Element;
14 }
15
16 func (v *Vector) At(i int) Element {
17         return v.elem[i];
18 }
19
20 type TStruct struct {
21         name string;
22         fields *Vector;
23 }
24
25 func (s *TStruct) field(i int) *TStruct {
26         return s.fields.At(i).(*TStruct);
27 }
28
29 func main() {
30         v := new(Vector);
31         v.elem = make([]Element, 10);
32         t := new(TStruct);
33         t.name = "hi";
34         v.elem[0] = t;
35         s := new(TStruct);
36         s.name = "foo";
37         s.fields = v;
38         if s.field(0).name != "hi" {
39                 panic("bad name")
40         }
41 }