]> Cypherpunks repositories - gostls13.git/commitdiff
go/types: fix TypeString(nil, nil)
authorMatthew Dempsky <mdempsky@google.com>
Thu, 29 Oct 2015 01:55:30 +0000 (18:55 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 30 Oct 2015 22:58:43 +0000 (22:58 +0000)
The code is meant to return "<nil>", but because of a make([]Type, 8)
call that should be make([]Type, 0, 8), the nil Type happens to
already appear in the array.

Change-Id: I2db140046e52f27db1b0ac84bde2b6680677dd95
Reviewed-on: https://go-review.googlesource.com/16464
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/go/types/typestring.go
src/go/types/typestring_test.go

index bd62f4dc229e80b6b52a7710ab6f1d49840597e3..47378e744c06c6e0624ef0af2dffdc4bea08cf97 100644 (file)
@@ -71,7 +71,7 @@ func TypeString(typ Type, qf Qualifier) string {
 // The Qualifier controls the printing of
 // package-level objects, and may be nil.
 func WriteType(buf *bytes.Buffer, typ Type, qf Qualifier) {
-       writeType(buf, typ, qf, make([]Type, 8))
+       writeType(buf, typ, qf, make([]Type, 0, 8))
 }
 
 func writeType(buf *bytes.Buffer, typ Type, qf Qualifier, visited []Type) {
@@ -272,7 +272,7 @@ func writeTuple(buf *bytes.Buffer, tup *Tuple, variadic bool, qf Qualifier, visi
 // The Qualifier controls the printing of
 // package-level objects, and may be nil.
 func WriteSignature(buf *bytes.Buffer, sig *Signature, qf Qualifier) {
-       writeSignature(buf, sig, qf, make([]Type, 8))
+       writeSignature(buf, sig, qf, make([]Type, 0, 8))
 }
 
 func writeSignature(buf *bytes.Buffer, sig *Signature, qf Qualifier, visited []Type) {
index 913e6c735cc3ea6197298052694c954f8887e3ee..6365df5fe2f1287b6515e68f0bbee36bb4eaf0c4 100644 (file)
@@ -148,6 +148,7 @@ func TestQualifiedTypeString(t *testing.T) {
                this *Package
                want string
        }{
+               {nil, nil, "<nil>"},
                {pT, nil, "p.T"},
                {pT, p, "T"},
                {pT, q, "p.T"},