]> Cypherpunks repositories - gostls13.git/commitdiff
fmt: don't check for nil when printing arrays as Go syntax.
authorRémy Oudompheng <oudomphe@phare.normalesup.org>
Wed, 23 Nov 2011 17:04:02 +0000 (09:04 -0800)
committerRob Pike <r@golang.org>
Wed, 23 Nov 2011 17:04:02 +0000 (09:04 -0800)
Also add array values to printing test suite.
Fixes #2468.

R=golang-dev, r
CC=golang-dev, remy
https://golang.org/cl/5436053

src/pkg/fmt/fmt_test.go
src/pkg/fmt/print.go

index 6370560d0bfa65acfa1b71bc21febb7fecc1494e..00aac798cb0fbc845b90daf7eb75525daaa6499e 100644 (file)
@@ -47,8 +47,10 @@ func TestFmtInterface(t *testing.T) {
 const b32 uint32 = 1<<32 - 1
 const b64 uint64 = 1<<64 - 1
 
-var array = []int{1, 2, 3, 4, 5}
-var iarray = []interface{}{1, "hello", 2.5, nil}
+var array = [5]int{1, 2, 3, 4, 5}
+var iarray = [4]interface{}{1, "hello", 2.5, nil}
+var slice = array[:]
+var islice = iarray[:]
 
 type A struct {
        i int
@@ -327,6 +329,12 @@ var fmttests = []struct {
        {"%v", &array, "&[1 2 3 4 5]"},
        {"%v", &iarray, "&[1 hello 2.5 <nil>]"},
 
+       // slices
+       {"%v", slice, "[1 2 3 4 5]"},
+       {"%v", islice, "[1 hello 2.5 <nil>]"},
+       {"%v", &slice, "&[1 2 3 4 5]"},
+       {"%v", &islice, "&[1 hello 2.5 <nil>]"},
+
        // complexes with %v
        {"%v", 1 + 2i, "(1+2i)"},
        {"%v", complex64(1 + 2i), "(1+2i)"},
@@ -359,6 +367,10 @@ var fmttests = []struct {
        {"%#v", SI{}, `fmt_test.SI{I:interface {}(nil)}`},
        {"%#v", []int(nil), `[]int(nil)`},
        {"%#v", []int{}, `[]int{}`},
+       {"%#v", array, `[5]int{1, 2, 3, 4, 5}`},
+       {"%#v", &array, `&[5]int{1, 2, 3, 4, 5}`},
+       {"%#v", iarray, `[4]interface {}{1, "hello", 2.5, interface {}(nil)}`},
+       {"%#v", &iarray, `&[4]interface {}{1, "hello", 2.5, interface {}(nil)}`},
        {"%#v", map[int]byte(nil), `map[int] uint8(nil)`},
        {"%#v", map[int]byte{}, `map[int] uint8{}`},
 
index 7143e07a36e96f6f21b6a041a377535f5c62f46c..e5ca1172405c1799efc7474144dc7f559e45477e 100644 (file)
@@ -877,7 +877,7 @@ BigSwitch:
                }
                if goSyntax {
                        p.buf.WriteString(value.Type().String())
-                       if f.IsNil() {
+                       if f.Kind() == reflect.Slice && f.IsNil() {
                                p.buf.WriteString("(nil)")
                                break
                        }