1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- // Copyright 2018 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- /*
- Vet examines Go source code and reports suspicious constructs, such as Printf
- calls whose arguments do not align with the format string. Vet uses heuristics
- that do not guarantee all reports are genuine problems, but it can find errors
- not caught by the compilers.
- Vet is normally invoked through the go command.
- This command vets the package in the current directory:
- go vet
- whereas this one vets the packages whose path is provided:
- go vet my/project/...
- Use "go help packages" to see other ways of specifying which packages to vet.
- Vet's exit code is non-zero for erroneous invocation of the tool or if a
- problem was reported, and 0 otherwise. Note that the tool does not
- check every possible problem and depends on unreliable heuristics,
- so it should be used as guidance only, not as a firm indicator of
- program correctness.
- To list the available checks, run "go tool vet help":
- asmdecl report mismatches between assembly files and Go declarations
- assign check for useless assignments
- atomic check for common mistakes using the sync/atomic package
- bools check for common mistakes involving boolean operators
- buildtag check that +build tags are well-formed and correctly located
- cgocall detect some violations of the cgo pointer passing rules
- composites check for unkeyed composite literals
- copylocks check for locks erroneously passed by value
- httpresponse check for mistakes using HTTP responses
- loopclosure check references to loop variables from within nested functions
- lostcancel check cancel func returned by context.WithCancel is called
- nilfunc check for useless comparisons between functions and nil
- printf check consistency of Printf format strings and arguments
- shift check for shifts that equal or exceed the width of the integer
- stdmethods check signature of methods of well-known interfaces
- structtag check that struct field tags conform to reflect.StructTag.Get
- tests check for common mistaken usages of tests and examples
- unmarshal report passing non-pointer or non-interface values to unmarshal
- unreachable check for unreachable code
- unsafeptr check for invalid conversions of uintptr to unsafe.Pointer
- unusedresult check for unused results of calls to some functions
- For details and flags of a particular check, such as printf, run "go tool vet help printf".
- By default, all checks are performed.
- If any flags are explicitly set to true, only those tests are run.
- Conversely, if any flag is explicitly set to false, only those tests are disabled.
- Thus -printf=true runs the printf check,
- and -printf=false runs all checks except the printf check.
- For information on writing a new check, see golang.org/x/tools/go/analysis.
- Core flags:
- -c=N
- display offending line plus N lines of surrounding context
- -json
- emit analysis diagnostics (and errors) in JSON format
- */
- package main
|