mirror of
https://github.com/golang/go
synced 2024-11-21 23:34:42 -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.
|
||||
func (f *File) checkPrint(call *ast.CallExpr, name string, skip int) {
|
||||
isLn := strings.HasSuffix(name, "ln")
|
||||
isF := strings.HasPrefix(name, "F")
|
||||
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 *verbose && !isLn {
|
||||
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()
|
||||
go s.Config.Serve(s.Listener)
|
||||
if *serve != "" {
|
||||
fmt.Println(os.Stderr, "httptest: serving on", s.URL)
|
||||
fmt.Fprintln(os.Stderr, "httptest: serving on", s.URL)
|
||||
select {}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user