Initial commit: Go 1.23 release state
This commit is contained in:
41
test/fixedbugs/bug054.go
Normal file
41
test/fixedbugs/bug054.go
Normal file
@@ -0,0 +1,41 @@
|
||||
// run
|
||||
|
||||
// Copyright 2009 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 Element interface {
|
||||
}
|
||||
|
||||
type Vector struct {
|
||||
elem []Element;
|
||||
}
|
||||
|
||||
func (v *Vector) At(i int) Element {
|
||||
return v.elem[i];
|
||||
}
|
||||
|
||||
type TStruct struct {
|
||||
name string;
|
||||
fields *Vector;
|
||||
}
|
||||
|
||||
func (s *TStruct) field(i int) *TStruct {
|
||||
return s.fields.At(i).(*TStruct);
|
||||
}
|
||||
|
||||
func main() {
|
||||
v := new(Vector);
|
||||
v.elem = make([]Element, 10);
|
||||
t := new(TStruct);
|
||||
t.name = "hi";
|
||||
v.elem[0] = t;
|
||||
s := new(TStruct);
|
||||
s.name = "foo";
|
||||
s.fields = v;
|
||||
if s.field(0).name != "hi" {
|
||||
panic("bad name")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user