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  	"flag"
    11  
    12  	"golang.org/x/tools/go/analysis/unitchecker"
    13  
    14  	"golang.org/x/tools/go/analysis/passes/appends"
    15  	"golang.org/x/tools/go/analysis/passes/asmdecl"
    16  	"golang.org/x/tools/go/analysis/passes/assign"
    17  	"golang.org/x/tools/go/analysis/passes/atomic"
    18  	"golang.org/x/tools/go/analysis/passes/bools"
    19  	"golang.org/x/tools/go/analysis/passes/buildtag"
    20  	"golang.org/x/tools/go/analysis/passes/cgocall"
    21  	"golang.org/x/tools/go/analysis/passes/composite"
    22  	"golang.org/x/tools/go/analysis/passes/copylock"
    23  	"golang.org/x/tools/go/analysis/passes/defers"
    24  	"golang.org/x/tools/go/analysis/passes/directive"
    25  	"golang.org/x/tools/go/analysis/passes/errorsas"
    26  	"golang.org/x/tools/go/analysis/passes/framepointer"
    27  	"golang.org/x/tools/go/analysis/passes/hostport"
    28  	"golang.org/x/tools/go/analysis/passes/httpresponse"
    29  	"golang.org/x/tools/go/analysis/passes/ifaceassert"
    30  	"golang.org/x/tools/go/analysis/passes/loopclosure"
    31  	"golang.org/x/tools/go/analysis/passes/lostcancel"
    32  	"golang.org/x/tools/go/analysis/passes/nilfunc"
    33  	"golang.org/x/tools/go/analysis/passes/printf"
    34  	"golang.org/x/tools/go/analysis/passes/shift"
    35  	"golang.org/x/tools/go/analysis/passes/sigchanyzer"
    36  	"golang.org/x/tools/go/analysis/passes/slog"
    37  	"golang.org/x/tools/go/analysis/passes/stdmethods"
    38  	"golang.org/x/tools/go/analysis/passes/stdversion"
    39  	"golang.org/x/tools/go/analysis/passes/stringintconv"
    40  	"golang.org/x/tools/go/analysis/passes/structtag"
    41  	"golang.org/x/tools/go/analysis/passes/testinggoroutine"
    42  	"golang.org/x/tools/go/analysis/passes/tests"
    43  	"golang.org/x/tools/go/analysis/passes/timeformat"
    44  	"golang.org/x/tools/go/analysis/passes/unmarshal"
    45  	"golang.org/x/tools/go/analysis/passes/unreachable"
    46  	"golang.org/x/tools/go/analysis/passes/unsafeptr"
    47  	"golang.org/x/tools/go/analysis/passes/unusedresult"
    48  	"golang.org/x/tools/go/analysis/passes/waitgroup"
    49  )
    50  
    51  func main() {
    52  	counter.Open()
    53  	objabi.AddVersionFlag()
    54  
    55  	counter.Inc("vet/invocations")
    56  	unitchecker.Main(
    57  		appends.Analyzer,
    58  		asmdecl.Analyzer,
    59  		assign.Analyzer,
    60  		atomic.Analyzer,
    61  		bools.Analyzer,
    62  		buildtag.Analyzer,
    63  		cgocall.Analyzer,
    64  		composite.Analyzer,
    65  		copylock.Analyzer,
    66  		defers.Analyzer,
    67  		directive.Analyzer,
    68  		errorsas.Analyzer,
    69  		framepointer.Analyzer,
    70  		httpresponse.Analyzer,
    71  		hostport.Analyzer,
    72  		ifaceassert.Analyzer,
    73  		loopclosure.Analyzer,
    74  		lostcancel.Analyzer,
    75  		nilfunc.Analyzer,
    76  		printf.Analyzer,
    77  		shift.Analyzer,
    78  		sigchanyzer.Analyzer,
    79  		slog.Analyzer,
    80  		stdmethods.Analyzer,
    81  		stdversion.Analyzer,
    82  		stringintconv.Analyzer,
    83  		structtag.Analyzer,
    84  		tests.Analyzer,
    85  		testinggoroutine.Analyzer,
    86  		timeformat.Analyzer,
    87  		unmarshal.Analyzer,
    88  		unreachable.Analyzer,
    89  		unsafeptr.Analyzer,
    90  		unusedresult.Analyzer,
    91  		waitgroup.Analyzer,
    92  	)
    93  
    94  	// It's possible that unitchecker will exit early. In
    95  	// those cases the flags won't be counted.
    96  	counter.CountFlags("vet/flag:", *flag.CommandLine)
    97  }
    98  

View as plain text