]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/vet: add a test for embedded stringer
authorAliaksandr Valialkin <valyala@gmail.com>
Mon, 29 May 2017 16:50:24 +0000 (19:50 +0300)
committerRob Pike <r@golang.org>
Tue, 30 May 2017 23:57:24 +0000 (23:57 +0000)
This should help narrowing down the possible cause of #20514.

Updates #20514.

Change-Id: Ie997400c9749aace7783bd585b23dbb4cefc181d
Reviewed-on: https://go-review.googlesource.com/44375
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Rob Pike <r@golang.org>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/vet/testdata/print.go

index b5c59ebd1bc26a3d3c5528a277cb52429da3db71..76e7bd71f18f96165c2dbe2db25c80c8483ad1f9 100644 (file)
@@ -87,6 +87,9 @@ func PrintfTests() {
        fmt.Printf("%s", &stringerv)
        fmt.Printf("%v", &stringerv)
        fmt.Printf("%T", &stringerv)
+       fmt.Printf("%s", &embeddedStringerv)
+       fmt.Printf("%v", &embeddedStringerv)
+       fmt.Printf("%T", &embeddedStringerv)
        fmt.Printf("%v", notstringerv)
        fmt.Printf("%T", notstringerv)
        fmt.Printf("%q", stringerarrayv)
@@ -123,6 +126,8 @@ func PrintfTests() {
        fmt.Printf("%X", 2.3)                      // ERROR "arg 2.3 for printf verb %X of wrong type"
        fmt.Printf("%s", stringerv)                // ERROR "arg stringerv for printf verb %s of wrong type"
        fmt.Printf("%t", stringerv)                // ERROR "arg stringerv for printf verb %t of wrong type"
+       fmt.Printf("%s", embeddedStringerv)        // ERROR "arg embeddedStringerv for printf verb %s of wrong type"
+       fmt.Printf("%t", embeddedStringerv)        // ERROR "arg embeddedStringerv for printf verb %t of wrong type"
        fmt.Printf("%q", notstringerv)             // ERROR "arg notstringerv for printf verb %q of wrong type"
        fmt.Printf("%t", notstringerv)             // ERROR "arg notstringerv for printf verb %t of wrong type"
        fmt.Printf("%t", stringerarrayv)           // ERROR "arg stringerarrayv for printf verb %t of wrong type"
@@ -346,6 +351,14 @@ func (*stringer) Warnf(int, string, ...interface{}) string {
        return "warnf"
 }
 
+type embeddedStringer struct {
+       foo string
+       stringer
+       bar int
+}
+
+var embeddedStringerv embeddedStringer
+
 type notstringer struct {
        f float64
 }