Source file src/cmd/vet/main.go

     1  // Copyright 2012 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package main
     6  
     7  import (
     8  	"cmd/internal/objabi"
     9  	"cmd/internal/telemetry/counter"
    10  
    11  	"golang.org/x/tools/go/analysis"
    12  	"golang.org/x/tools/go/analysis/passes/appends"
    13  	"golang.org/x/tools/go/analysis/passes/asmdecl"
    14  	"golang.org/x/tools/go/analysis/passes/assign"
    15  	"golang.org/x/tools/go/analysis/passes/atomic"
    16  	"golang.org/x/tools/go/analysis/passes/bools"
    17  	"golang.org/x/tools/go/analysis/passes/buildtag"
    18  	"golang.org/x/tools/go/analysis/passes/cgocall"
    19  	"golang.org/x/tools/go/analysis/passes/composite"
    20  	"golang.org/x/tools/go/analysis/passes/copylock"
    21  	"golang.org/x/tools/go/analysis/passes/defers"
    22  	"golang.org/x/tools/go/analysis/passes/directive"
    23  	"golang.org/x/tools/go/analysis/passes/errorsas"
    24  	"golang.org/x/tools/go/analysis/passes/framepointer"
    25  	"golang.org/x/tools/go/analysis/passes/hostport"
    26  	"golang.org/x/tools/go/analysis/passes/httpresponse"
    27  	"golang.org/x/tools/go/analysis/passes/ifaceassert"
    28  	"golang.org/x/tools/go/analysis/passes/loopclosure"
    29  	"golang.org/x/tools/go/analysis/passes/lostcancel"
    30  	"golang.org/x/tools/go/analysis/passes/nilfunc"
    31  	"golang.org/x/tools/go/analysis/passes/printf"
    32  	"golang.org/x/tools/go/analysis/passes/shift"
    33  	"golang.org/x/tools/go/analysis/passes/sigchanyzer"
    34  	"golang.org/x/tools/go/analysis/passes/slog"
    35  	"golang.org/x/tools/go/analysis/passes/stdmethods"
    36  	"golang.org/x/tools/go/analysis/passes/stdversion"
    37  	"golang.org/x/tools/go/analysis/passes/stringintconv"
    38  	"golang.org/x/tools/go/analysis/passes/structtag"
    39  	"golang.org/x/tools/go/analysis/passes/testinggoroutine"
    40  	"golang.org/x/tools/go/analysis/passes/tests"
    41  	"golang.org/x/tools/go/analysis/passes/timeformat"
    42  	"golang.org/x/tools/go/analysis/passes/unmarshal"
    43  	"golang.org/x/tools/go/analysis/passes/unreachable"
    44  	"golang.org/x/tools/go/analysis/passes/unsafeptr"
    45  	"golang.org/x/tools/go/analysis/passes/unusedresult"
    46  	"golang.org/x/tools/go/analysis/passes/waitgroup"
    47  	"golang.org/x/tools/go/analysis/unitchecker"
    48  )
    49  
    50  func main() {
    51  	// Keep consistent with cmd/fix/main.go!
    52  	counter.Open()
    53  	objabi.AddVersionFlag()
    54  	counter.Inc("vet/invocations")
    55  
    56  	unitchecker.Main(suite...) // (never returns)
    57  }
    58  
    59  // The vet suite analyzers report diagnostics.
    60  // (Diagnostics must describe real problems, but need not
    61  // suggest fixes, and fixes are not necessarily safe to apply.)
    62  var suite = []*analysis.Analyzer{
    63  	appends.Analyzer,
    64  	asmdecl.Analyzer,
    65  	assign.Analyzer,
    66  	atomic.Analyzer,
    67  	bools.Analyzer,
    68  	buildtag.Analyzer,
    69  	cgocall.Analyzer,
    70  	composite.Analyzer,
    71  	copylock.Analyzer,
    72  	defers.Analyzer,
    73  	directive.Analyzer,
    74  	errorsas.Analyzer,
    75  	// fieldalignment.Analyzer omitted: too noisy
    76  	framepointer.Analyzer,
    77  	httpresponse.Analyzer,
    78  	hostport.Analyzer,
    79  	ifaceassert.Analyzer,
    80  	loopclosure.Analyzer,
    81  	lostcancel.Analyzer,
    82  	nilfunc.Analyzer,
    83  	printf.Analyzer,
    84  	// shadow.Analyzer omitted: too noisy
    85  	shift.Analyzer,
    86  	sigchanyzer.Analyzer,
    87  	slog.Analyzer,
    88  	stdmethods.Analyzer,
    89  	stdversion.Analyzer,
    90  	stringintconv.Analyzer,
    91  	structtag.Analyzer,
    92  	tests.Analyzer,
    93  	testinggoroutine.Analyzer,
    94  	timeformat.Analyzer,
    95  	unmarshal.Analyzer,
    96  	unreachable.Analyzer,
    97  	unsafeptr.Analyzer,
    98  	unusedresult.Analyzer,
    99  	waitgroup.Analyzer,
   100  }
   101  

View as plain text