URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [go.test/] [test/] [fixedbugs/] [bug027.go] - Rev 700
Compare with Previous | Blame | View Log
// $G $D/$F.go && $L $F.$A && ./$A.out// 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 mainimport "fmt"type Element interface {}type Vector struct {nelem intelem []Element}func New() *Vector {v := new(Vector)v.nelem = 0v.elem = make([]Element, 10)return v}func (v *Vector) At(i int) Element {return v.elem[i]}func (v *Vector) Insert(e Element) {v.elem[v.nelem] = ev.nelem++}func main() {type I struct{ val int }i0 := new(I)i0.val = 0i1 := new(I)i1.val = 11i2 := new(I)i2.val = 222i3 := new(I)i3.val = 3333i4 := new(I)i4.val = 44444v := New()r := "hi\n"v.Insert(i4)v.Insert(i3)v.Insert(i2)v.Insert(i1)v.Insert(i0)for i := 0; i < v.nelem; i++ {var x *Ix = v.At(i).(*I)r += fmt.Sprintln(i, x.val) // prints correct list}for i := 0; i < v.nelem; i++ {r += fmt.Sprintln(i, v.At(i).(*I).val)}expect := `hi0 444441 33332 2223 114 00 444441 33332 2223 114 0`if r != expect {panic(r)}}/*bug027.go:50: illegal types for operand(<Element>I{}) CONV (<I>{})bug027.go:50: illegal types for operand(<Element>I{}) CONV (<I>{})*/
