Home | History | Annotate | Download | only in fixedbugs
      1 // run
      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 }
     42