...
Run Format

Text file src/cmd/vet/README

Documentation: cmd/vet

     1	Vet is a tool that checks correctness of Go programs. It runs a suite of tests,
     2	each tailored to check for a particular class of errors. Examples include incorrect
     3	Printf format verbs or malformed build tags.
     4	
     5	Over time many checks have been added to vet's suite, but many more have been
     6	rejected as not appropriate for the tool. The criteria applied when selecting which
     7	checks to add are:
     8	
     9	Correctness:
    10	
    11	Vet's tools are about correctness, not style. A vet check must identify real or
    12	potential bugs that could cause incorrect compilation or execution. A check that
    13	only identifies stylistic points or alternative correct approaches to a situation
    14	is not acceptable.
    15	
    16	Frequency:
    17	
    18	Vet is run every day by many programmers, often as part of every compilation or
    19	submission. The cost in execution time is considerable, especially in aggregate,
    20	so checks must be likely enough to find real problems that they are worth the
    21	overhead of the added check. A new check that finds only a handful of problems
    22	across all existing programs, even if the problem is significant, is not worth
    23	adding to the suite everyone runs daily.
    24	
    25	Precision:
    26	
    27	Most of vet's checks are heuristic and can generate both false positives (flagging
    28	correct programs) and false negatives (not flagging incorrect ones). The rate of
    29	both these failures must be very small. A check that is too noisy will be ignored
    30	by the programmer overwhelmed by the output; a check that misses too many of the
    31	cases it's looking for will give a false sense of security. Neither is acceptable.
    32	A vet check must be accurate enough that everything it reports is worth examining,
    33	and complete enough to encourage real confidence.

View as plain text