diff options
author | Rob Pike <r@golang.org> | 2008-09-03 15:54:33 -0700 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2008-09-03 15:54:33 -0700 |
commit | 1ec35f4c7bca58159a6fdb0f0c002eebaf32f2d7 (patch) | |
tree | 478e6de4677f3436c8633577a7e0218d8d272f71 /test/complit.go | |
parent | af00087540b7166dec41dd810a80e19f5512a1c0 (diff) | |
download | go-1ec35f4c7bca58159a6fdb0f0c002eebaf32f2d7.tar.gz |
update bugs
add test for composite literals
R=gri
OCL=14766
CL=14766
Diffstat (limited to 'test/complit.go')
-rw-r--r-- | test/complit.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/complit.go b/test/complit.go new file mode 100644 index 000000000..bba690cfe --- /dev/null +++ b/test/complit.go @@ -0,0 +1,44 @@ +// $G $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 main + +type T struct { i int; f float; s string; next *T } + +func main() { + var t T; + t = T(0, 7.2, "hi", &t); + + var tp *T; + tp = &T(0, 7.2, "hi", &t); + + a1 := []int(1,2,3); + if len(a1) != 3 { panic("a1") } + a2 := [10]int(1,2,3); + if len(a2) != 10 || a2[3] != 0 { panic("a2") } + //a3 := [10]int(1,2,3,); // BUG: trailing commas not allowed + //if len(a3) != 10 || a2[3] != 0 { panic("a3") } + + var oai *[]int; + oai = &[]int(1,2,3); + if len(oai) != 3 { panic("oai") } + + at := []*T(&t, &t, &t); + if len(at) != 3 { panic("at") } + + c := new(chan int); + ac := []*chan int(c, c, c); + if len(ac) != 3 { panic("ac") } + + aat := [][len(at)]*T(at, at); + if len(aat) != 2 || len(aat[1]) != 3 { panic("at") } + + s := string([]byte('h', 'e', 'l', 'l', 'o')); + if s != "hello" { panic("s") } + + m := map[string]float("one":1.0, "two":2.0, "pi":22./7.); + if len(m) != 3 { panic("m") } +} |