mirror of
https://github.com/golang/go
synced 2024-11-21 23:14:40 -07:00
cmd/vet: give warning for construct 'Println(os.Stderr, ...)'
also fixes this bug in net/http/httptest. R=golang-dev, r CC=golang-dev https://golang.org/cl/5654083
This commit is contained in:
parent
d599accafa
commit
60e4d5668e
@ -207,7 +207,18 @@ func (f *File) checkPrintfVerb(call *ast.CallExpr, verb rune, flags []byte) {
|
|||||||
// call.Args[skip] is the first argument to be printed.
|
// call.Args[skip] is the first argument to be printed.
|
||||||
func (f *File) checkPrint(call *ast.CallExpr, name string, skip int) {
|
func (f *File) checkPrint(call *ast.CallExpr, name string, skip int) {
|
||||||
isLn := strings.HasSuffix(name, "ln")
|
isLn := strings.HasSuffix(name, "ln")
|
||||||
|
isF := strings.HasPrefix(name, "F")
|
||||||
args := call.Args
|
args := call.Args
|
||||||
|
// check for Println(os.Stderr, ...)
|
||||||
|
if skip == 0 && !isF && len(args) > 0 {
|
||||||
|
if sel, ok := args[0].(*ast.SelectorExpr); ok {
|
||||||
|
if x, ok := sel.X.(*ast.Ident); ok {
|
||||||
|
if x.Name == "os" && strings.HasPrefix(sel.Sel.Name, "Std") {
|
||||||
|
f.Warnf(call.Pos(), "first argument to %s is %s.%s", name, x.Name, sel.Sel.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if len(args) <= skip {
|
if len(args) <= skip {
|
||||||
if *verbose && !isLn {
|
if *verbose && !isLn {
|
||||||
f.Badf(call.Pos(), "no args in %s call", name)
|
f.Badf(call.Pos(), "no args in %s call", name)
|
||||||
|
@ -95,7 +95,7 @@ func (s *Server) Start() {
|
|||||||
s.URL = "http://" + s.Listener.Addr().String()
|
s.URL = "http://" + s.Listener.Addr().String()
|
||||||
go s.Config.Serve(s.Listener)
|
go s.Config.Serve(s.Listener)
|
||||||
if *serve != "" {
|
if *serve != "" {
|
||||||
fmt.Println(os.Stderr, "httptest: serving on", s.URL)
|
fmt.Fprintln(os.Stderr, "httptest: serving on", s.URL)
|
||||||
select {}
|
select {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user