• Daniel Martí's avatar
    cmd/vet: don't suggest ... if it breaks a program · 2482451f
    Daniel Martí authored
    It is possible to write a function that seems to wrap a print/printf
    call, but then doesn't. For example, if the string parameter we thought
    was the format is used as another argument.
    
    One option would be to make vet's print analysis smarter, to detect when
    format strings are indeed used like we initially suspected.
    
    However, I've opted for a simpler solution - check if the print/printf
    call is already using more than one variadic argument, in which case
    using an ellipsis in the last one would break the program:
    
    	// too many arguments in call to fmt.Printf
    	fmt.Printf(format, arg0, args...)
    
    Fixes #26979.
    
    Change-Id: I39371f1cec8483cfd2770a91670c1e80cbb9efdf
    Reviewed-on: https://go-review.googlesource.com/129575
    Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    2482451f
print.go 29.4 KB