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 / internal / lsp / debug / info.1.12.go
1 // Copyright 2019 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 // +build go1.12
6
7 package debug
8
9 import (
10         "fmt"
11         "io"
12         "runtime/debug"
13 )
14
15 func printBuildInfo(w io.Writer, verbose bool, mode PrintMode) {
16         if info, ok := debug.ReadBuildInfo(); ok {
17                 fmt.Fprintf(w, "%v %v\n", info.Path, Version)
18                 printModuleInfo(w, &info.Main, mode)
19                 if verbose {
20                         for _, dep := range info.Deps {
21                                 printModuleInfo(w, dep, mode)
22                         }
23                 }
24         } else {
25                 fmt.Fprintf(w, "version %s, built in $GOPATH mode\n", Version)
26         }
27 }
28
29 func printModuleInfo(w io.Writer, m *debug.Module, mode PrintMode) {
30         fmt.Fprintf(w, "    %s@%s", m.Path, m.Version)
31         if m.Sum != "" {
32                 fmt.Fprintf(w, " %s", m.Sum)
33         }
34         if m.Replace != nil {
35                 fmt.Fprintf(w, " => %v", m.Replace.Path)
36         }
37         fmt.Fprintf(w, "\n")
38 }