Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / go / analysis / passes / inspect / inspect.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/go/analysis/passes/inspect/inspect.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/go/analysis/passes/inspect/inspect.go
new file mode 100644 (file)
index 0000000..2856df1
--- /dev/null
@@ -0,0 +1,49 @@
+// 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.
+
+// Package inspect defines an Analyzer that provides an AST inspector
+// (golang.org/x/tools/go/ast/inspect.Inspect) for the syntax trees of a
+// package. It is only a building block for other analyzers.
+//
+// Example of use in another analysis:
+//
+//     import (
+//             "golang.org/x/tools/go/analysis"
+//             "golang.org/x/tools/go/analysis/passes/inspect"
+//             "golang.org/x/tools/go/ast/inspector"
+//     )
+//
+//     var Analyzer = &analysis.Analyzer{
+//             ...
+//             Requires:       []*analysis.Analyzer{inspect.Analyzer},
+//     }
+//
+//     func run(pass *analysis.Pass) (interface{}, error) {
+//             inspect := pass.ResultOf[inspect.Analyzer].(*inspector.Inspector)
+//             inspect.Preorder(nil, func(n ast.Node) {
+//                     ...
+//             })
+//             return nil
+//     }
+//
+package inspect
+
+import (
+       "reflect"
+
+       "golang.org/x/tools/go/analysis"
+       "golang.org/x/tools/go/ast/inspector"
+)
+
+var Analyzer = &analysis.Analyzer{
+       Name:             "inspect",
+       Doc:              "optimize AST traversal for later passes",
+       Run:              run,
+       RunDespiteErrors: true,
+       ResultType:       reflect.TypeOf(new(inspector.Inspector)),
+}
+
+func run(pass *analysis.Pass) (interface{}, error) {
+       return inspector.New(pass.Files), nil
+}