Commit 25444d07 authored by Rob Pike's avatar Rob Pike

clean up some tests

R=rsc
DELTA=10  (1 added, 2 deleted, 7 changed)
OCL=22033
CL=22033
parent be76898c
...@@ -17,7 +17,7 @@ type Vector struct { ...@@ -17,7 +17,7 @@ type Vector struct {
func New() *Vector { func New() *Vector {
v := new(*Vector); v := new(*Vector);
v.nelem = 0; v.nelem = 0;
v.elem = new([10]Element); v.elem = new([]Element, 10);
return v; return v;
} }
...@@ -30,9 +30,8 @@ func (v *Vector) Insert(e Element) { ...@@ -30,9 +30,8 @@ func (v *Vector) Insert(e Element) {
v.nelem++; v.nelem++;
} }
type I struct { val int; }; // BUG: can't be local;
func main() { func main() {
type I struct { val int; };
i0 := new(*I); i0.val = 0; i0 := new(*I); i0.val = 0;
i1 := new(*I); i1.val = 11; i1 := new(*I); i1.val = 11;
i2 := new(*I); i2.val = 222; i2 := new(*I); i2.val = 222;
......
...@@ -13,7 +13,7 @@ type T struct { ...@@ -13,7 +13,7 @@ type T struct {
func main() { func main() {
var ta []*T; var ta []*T;
ta = new([1]*T); ta = *new(*[1]*T); // TODO: the first * shouldn't be necessary
ta[0] = nil; ta[0] = nil;
} }
/* /*
......
...@@ -31,7 +31,7 @@ func (s *TStruct) field(i int) *TStruct { ...@@ -31,7 +31,7 @@ func (s *TStruct) field(i int) *TStruct {
func main() { func main() {
v := new(*Vector); v := new(*Vector);
v.elem = new([10]Element); v.elem = new([]Element, 10);
t := new(*TStruct); t := new(*TStruct);
t.name = "hi"; t.name = "hi";
v.elem[0] = t; v.elem[0] = t;
......
...@@ -9,9 +9,9 @@ package main ...@@ -9,9 +9,9 @@ package main
type A []int; type A []int;
func main() { func main() {
var a [3]*A; var a [3]A;
for i := 0; i < 3; i++ { for i := 0; i < 3; i++ {
a[i] = &A{i}; a[i] = A{i};
} }
if a[0][0] != 0 { panic(); } if a[0][0] != 0 { panic(); }
if a[1][0] != 1 { panic(); } if a[1][0] != 1 { panic(); }
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
package main package main
func foo(a []int) int { func foo(a []int) int {
return (*a)[0] // this seesm to do the wrong thing return a[0] // this seems to do the wrong thing
} }
func main() { func main() {
a := &[]int{12}; a := &[]int{12};
if x := a[0] ; x != 12 { panicln(1) } if x := a[0] ; x != 12 { panicln(1) }
if x := (*a)[0]; x != 12 { panicln(2) } if x := (*a)[0]; x != 12 { panicln(2) }
if x := foo(a) ; x != 12 { panicln(3) } // fails (x is incorrect) if x := foo(*a) ; x != 12 { panicln(3) } // fails (x is incorrect)
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment