Skip to content

Commit 04252ec

Browse files
cespareadonovan
authored andcommitted
go/analysis/passes/printf: allow %x/%X for float/complex types
These verbs are supported as of Go 1.13. Updates golang/go#34993 Change-Id: Ib7892e45b51073e3771bebb652a8fe3a1c6ae3c6 Reviewed-on: https://go-review.googlesource.com/c/tools/+/202041 Run-TryBot: Caleb Spare <[email protected]> Reviewed-by: Alan Donovan <[email protected]>
1 parent a1005cf commit 04252ec

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

go/analysis/passes/printf/printf.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -766,8 +766,8 @@ var printVerbs = []printVerb{
766766
{'U', "-#", argRune | argInt},
767767
{'v', allFlags, anyType},
768768
{'w', allFlags, argError},
769-
{'x', sharpNumFlag, argRune | argInt | argString | argPointer},
770-
{'X', sharpNumFlag, argRune | argInt | argString | argPointer},
769+
{'x', sharpNumFlag, argRune | argInt | argString | argPointer | argFloat | argComplex},
770+
{'X', sharpNumFlag, argRune | argInt | argString | argPointer | argFloat | argComplex},
771771
}
772772

773773
// okPrintfArg compares the formatState to the arguments actually present,

go/analysis/passes/printf/testdata/src/a/a.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ func PrintfTests() {
8484
fmt.Printf("%T %T", 3, i)
8585
fmt.Printf("%U %U", 3, i)
8686
fmt.Printf("%v %v", 3, i)
87-
fmt.Printf("%x %x %x %x", 3, i, "hi", s)
88-
fmt.Printf("%X %X %X %X", 3, i, "hi", s)
87+
fmt.Printf("%x %x %x %x %x %x %x", 3, i, "hi", s, x, c, fslice)
88+
fmt.Printf("%X %X %X %X %X %X %X", 3, i, "hi", s, x, c, fslice)
8989
fmt.Printf("%.*s %d %g", 3, "hi", 23, 2.3)
9090
fmt.Printf("%s", &stringerv)
9191
fmt.Printf("%v", &stringerv)
@@ -128,7 +128,6 @@ func PrintfTests() {
128128
fmt.Printf("%t", 23) // want "Printf format %t has arg 23 of wrong type int"
129129
fmt.Printf("%U", x) // want "Printf format %U has arg x of wrong type float64"
130130
fmt.Printf("%x", nil) // want "Printf format %x has arg nil of wrong type untyped nil"
131-
fmt.Printf("%X", 2.3) // want "Printf format %X has arg 2.3 of wrong type float64"
132131
fmt.Printf("%s", stringerv) // want "Printf format %s has arg stringerv of wrong type a.ptrStringer"
133132
fmt.Printf("%t", stringerv) // want "Printf format %t has arg stringerv of wrong type a.ptrStringer"
134133
fmt.Printf("%s", embeddedStringerv) // want "Printf format %s has arg embeddedStringerv of wrong type a.embeddedStringer"

0 commit comments

Comments
 (0)