Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.0.1-2020.1.5 / cmd / staticcheck / staticcheck.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/cmd/staticcheck/staticcheck.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/cmd/staticcheck/staticcheck.go
new file mode 100644 (file)
index 0000000..4f504dc
--- /dev/null
@@ -0,0 +1,44 @@
+// staticcheck analyses Go code and makes it better.
+package main // import "honnef.co/go/tools/cmd/staticcheck"
+
+import (
+       "log"
+       "os"
+
+       "golang.org/x/tools/go/analysis"
+       "honnef.co/go/tools/lint"
+       "honnef.co/go/tools/lint/lintutil"
+       "honnef.co/go/tools/simple"
+       "honnef.co/go/tools/staticcheck"
+       "honnef.co/go/tools/stylecheck"
+       "honnef.co/go/tools/unused"
+)
+
+func main() {
+       fs := lintutil.FlagSet("staticcheck")
+       wholeProgram := fs.Bool("unused.whole-program", false, "Run unused in whole program mode")
+       debug := fs.String("debug.unused-graph", "", "Write unused's object graph to `file`")
+       fs.Parse(os.Args[1:])
+
+       var cs []*analysis.Analyzer
+       for _, v := range simple.Analyzers {
+               cs = append(cs, v)
+       }
+       for _, v := range staticcheck.Analyzers {
+               cs = append(cs, v)
+       }
+       for _, v := range stylecheck.Analyzers {
+               cs = append(cs, v)
+       }
+
+       u := unused.NewChecker(*wholeProgram)
+       if *debug != "" {
+               f, err := os.OpenFile(*debug, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666)
+               if err != nil {
+                       log.Fatal(err)
+               }
+               u.Debug = f
+       }
+       cums := []lint.CumulativeChecker{u}
+       lintutil.ProcessFlagSet(cs, cums, fs)
+}