]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/vet: add missing %v to the verb regex
authorDaniel Martí <mvdan@mvdan.cc>
Wed, 22 Nov 2017 18:21:39 +0000 (18:21 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Wed, 22 Nov 2017 20:27:00 +0000 (20:27 +0000)
In golang.org/cl/74352, the print rules were overhauled to give better
error messages. This also meant adding a regex to find and extract the
used formatting verbs.

However, %v was missed. Add it to the expression, and add a test too.

Fixes #22847.

Change-Id: If117cc364db0cb91373742239b8a626c137642b0
Reviewed-on: https://go-review.googlesource.com/79455
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/vet/print.go
src/cmd/vet/testdata/print.go

index e10c3169b389b2d77fd208e2a8e57d299b5e8aff..beb78030ef471229a1638fd58a4e341cc235ed69 100644 (file)
@@ -614,7 +614,7 @@ const (
        flagsRE    = `[+\-#]*`
        indexOptRE = `(\[[0-9]+\])?`
        numOptRE   = `([0-9]+|` + indexOptRE + `\*)?`
-       verbRE     = `[bcdefgopqstxEFGUX]`
+       verbRE     = `[bcdefgopqstvxEFGUX]`
 )
 
 // checkPrint checks a call to an unformatted print routine such as Println.
index db11e125ae758d2fac695fb9b7ea2a259bb03ed8..abb926abf7bc90a7ed0c08454f22ae18ac52a158 100644 (file)
@@ -141,6 +141,7 @@ func PrintfTests() {
        fmt.Printf("%.*s %d %6g", 3, "hi", 23, 'x') // ERROR "Printf format %6g has arg 'x' of wrong type rune"
        fmt.Println()                               // not an error
        fmt.Println("%s", "hi")                     // ERROR "Println call has possible formatting directive %s"
+       fmt.Println("%v", "hi")                     // ERROR "Println call has possible formatting directive %v"
        fmt.Println("0.0%")                         // correct (trailing % couldn't be a formatting directive)
        fmt.Printf("%s", "hi", 3)                   // ERROR "Printf call needs 1 arg but has 2 args"
        _ = fmt.Sprintf("%"+("s"), "hi", 3)         // ERROR "Sprintf call needs 1 arg but has 2 args"