Fix #387: update goimports

$ git cherry --abbrev -v d66bd3c5d5a6 379209517ffe | fgrep imports:
+ a06a922a imports: update zstdlib to Go 1.12
+ cb89afad imports: drop anything after a non identifier rune in package
names
This commit is contained in:
Denis Isaev 2019-02-11 09:11:49 +03:00
parent 9916a2fb79
commit 81cf48771e
No known key found for this signature in database
GPG Key ID: A36A0EC8E27A1A01
11 changed files with 130 additions and 65 deletions

2
go.mod
View File

@ -55,7 +55,7 @@ require (
github.com/spf13/viper v1.0.2 github.com/spf13/viper v1.0.2
github.com/stretchr/testify v1.2.1 github.com/stretchr/testify v1.2.1
golang.org/x/crypto v0.0.0-20180505025534-4ec37c66abab // indirect golang.org/x/crypto v0.0.0-20180505025534-4ec37c66abab // indirect
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6 golang.org/x/tools v0.0.0-20190125232054-379209517ffe
gopkg.in/airbrake/gobrake.v2 v2.0.9 // indirect gopkg.in/airbrake/gobrake.v2 v2.0.9 // indirect
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 // indirect gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 // indirect
gopkg.in/yaml.v2 v2.2.1 gopkg.in/yaml.v2 v2.2.1

4
go.sum
View File

@ -153,8 +153,8 @@ golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6 h1:iZgcI2DDp6zW5v9Z/5+f0NuqoxNdmzg4hivjk2WLXpY= golang.org/x/tools v0.0.0-20190125232054-379209517ffe h1:ZJ3JgA0fnPnX6nSjHp3y5XWNUf3zaTbWlilINJoPFkQ=
golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190125232054-379209517ffe/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@ -127,10 +127,10 @@ func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error)
// --- generic export data --- // --- generic export data ---
// populate type map with predeclared "known" types // populate type map with predeclared "known" types
for index, typ := range predeclared { for index, typ := range predeclared() {
p.typIndex[typ] = index p.typIndex[typ] = index
} }
if len(p.typIndex) != len(predeclared) { if len(p.typIndex) != len(predeclared()) {
return nil, internalError("duplicate entries in type map?") return nil, internalError("duplicate entries in type map?")
} }

View File

@ -126,7 +126,7 @@ func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []
// --- generic export data --- // --- generic export data ---
// populate typList with predeclared "known" types // populate typList with predeclared "known" types
p.typList = append(p.typList, predeclared...) p.typList = append(p.typList, predeclared()...)
// read package data // read package data
pkg = p.pkg() pkg = p.pkg()
@ -976,50 +976,58 @@ const (
aliasTag aliasTag
) )
var predeclared = []types.Type{ var predecl []types.Type // initialized lazily
// basic types
types.Typ[types.Bool],
types.Typ[types.Int],
types.Typ[types.Int8],
types.Typ[types.Int16],
types.Typ[types.Int32],
types.Typ[types.Int64],
types.Typ[types.Uint],
types.Typ[types.Uint8],
types.Typ[types.Uint16],
types.Typ[types.Uint32],
types.Typ[types.Uint64],
types.Typ[types.Uintptr],
types.Typ[types.Float32],
types.Typ[types.Float64],
types.Typ[types.Complex64],
types.Typ[types.Complex128],
types.Typ[types.String],
// basic type aliases func predeclared() []types.Type {
types.Universe.Lookup("byte").Type(), if predecl == nil {
types.Universe.Lookup("rune").Type(), // initialize lazily to be sure that all
// elements have been initialized before
predecl = []types.Type{ // basic types
types.Typ[types.Bool],
types.Typ[types.Int],
types.Typ[types.Int8],
types.Typ[types.Int16],
types.Typ[types.Int32],
types.Typ[types.Int64],
types.Typ[types.Uint],
types.Typ[types.Uint8],
types.Typ[types.Uint16],
types.Typ[types.Uint32],
types.Typ[types.Uint64],
types.Typ[types.Uintptr],
types.Typ[types.Float32],
types.Typ[types.Float64],
types.Typ[types.Complex64],
types.Typ[types.Complex128],
types.Typ[types.String],
// error // basic type aliases
types.Universe.Lookup("error").Type(), types.Universe.Lookup("byte").Type(),
types.Universe.Lookup("rune").Type(),
// untyped types // error
types.Typ[types.UntypedBool], types.Universe.Lookup("error").Type(),
types.Typ[types.UntypedInt],
types.Typ[types.UntypedRune],
types.Typ[types.UntypedFloat],
types.Typ[types.UntypedComplex],
types.Typ[types.UntypedString],
types.Typ[types.UntypedNil],
// package unsafe // untyped types
types.Typ[types.UnsafePointer], types.Typ[types.UntypedBool],
types.Typ[types.UntypedInt],
types.Typ[types.UntypedRune],
types.Typ[types.UntypedFloat],
types.Typ[types.UntypedComplex],
types.Typ[types.UntypedString],
types.Typ[types.UntypedNil],
// invalid type // package unsafe
types.Typ[types.Invalid], // only appears in packages with errors types.Typ[types.UnsafePointer],
// used internally by gc; never used by this package or in .a files // invalid type
anyType{}, types.Typ[types.Invalid], // only appears in packages with errors
// used internally by gc; never used by this package or in .a files
anyType{},
}
}
return predecl
} }
type anyType struct{} type anyType struct{}

View File

@ -109,7 +109,7 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []
}, },
} }
for i, pt := range predeclared { for i, pt := range predeclared() {
p.typCache[uint64(i)] = pt p.typCache[uint64(i)] = pt
} }
@ -142,8 +142,12 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []
p.pkgIndex[pkg] = nameIndex p.pkgIndex[pkg] = nameIndex
pkgList[i] = pkg pkgList[i] = pkg
} }
var localpkg *types.Package
localpkg := pkgList[0] for _, pkg := range pkgList {
if pkg.Path() == path {
localpkg = pkg
}
}
names := make([]string, 0, len(p.pkgIndex[localpkg])) names := make([]string, 0, len(p.pkgIndex[localpkg]))
for name := range p.pkgIndex[localpkg] { for name := range p.pkgIndex[localpkg] {
@ -330,6 +334,10 @@ func (r *importReader) value() (typ types.Type, val constant.Value) {
val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im))
default: default:
if b.Kind() == types.Invalid {
val = constant.MakeUnknown()
return
}
errorf("unexpected type %v", typ) // panics errorf("unexpected type %v", typ) // panics
panic("unreachable") panic("unreachable")
} }

View File

@ -14,7 +14,7 @@ but all patterns with the prefix "query=", where query is a
non-empty string of letters from [a-z], are reserved and may be non-empty string of letters from [a-z], are reserved and may be
interpreted as query operators. interpreted as query operators.
Three query operators are currently supported: "file", "pattern", and "name". Two query operators are currently supported: "file" and "pattern".
The query "file=path/to/file.go" matches the package or packages enclosing The query "file=path/to/file.go" matches the package or packages enclosing
the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go"
@ -25,10 +25,6 @@ the underlying build tool. In most cases this is unnecessary,
but an application can use Load("pattern=" + x) as an escaping mechanism but an application can use Load("pattern=" + x) as an escaping mechanism
to ensure that x is not interpreted as a query operator if it contains '='. to ensure that x is not interpreted as a query operator if it contains '='.
The query "name=identifier" matches packages whose package declaration contains
the specified identifier. For example, "name=rand" would match the packages
"math/rand" and "crypto/rand", and "name=main" would match all executables.
All other query operators are reserved for future use and currently All other query operators are reserved for future use and currently
cause Load to report an error. cause Load to report an error.

View File

@ -104,7 +104,7 @@ extractQueries:
containFiles = append(containFiles, value) containFiles = append(containFiles, value)
case "pattern": case "pattern":
restPatterns = append(restPatterns, value) restPatterns = append(restPatterns, value)
case "name": case "iamashamedtousethedisabledqueryname":
packagesNamed = append(packagesNamed, value) packagesNamed = append(packagesNamed, value)
case "": // not a reserved query case "": // not a reserved query
restPatterns = append(restPatterns, pattern) restPatterns = append(restPatterns, pattern)

View File

@ -23,6 +23,8 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"unicode"
"unicode/utf8"
"golang.org/x/tools/go/ast/astutil" "golang.org/x/tools/go/ast/astutil"
"golang.org/x/tools/go/packages" "golang.org/x/tools/go/packages"
@ -289,7 +291,7 @@ func (p *pass) importIdentifier(imp *importInfo) string {
if known != nil && known.name != "" { if known != nil && known.name != "" {
return known.name return known.name
} }
return importPathToNameBasic(imp.importPath, p.srcDir) return importPathToAssumedName(imp.importPath)
} }
// load reads in everything necessary to run a pass, and reports whether the // load reads in everything necessary to run a pass, and reports whether the
@ -389,7 +391,7 @@ func (p *pass) fix() bool {
} }
path := strings.Trim(imp.Path.Value, `""`) path := strings.Trim(imp.Path.Value, `""`)
ident := p.importIdentifier(&importInfo{importPath: path}) ident := p.importIdentifier(&importInfo{importPath: path})
if ident != importPathToNameBasic(path, p.srcDir) { if ident != importPathToAssumedName(path) {
imp.Name = &ast.Ident{Name: ident, NamePos: imp.Pos()} imp.Name = &ast.Ident{Name: ident, NamePos: imp.Pos()}
} }
} }
@ -648,7 +650,7 @@ func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir strin
if _, ok := names[path]; ok { if _, ok := names[path]; ok {
continue continue
} }
names[path] = importPathToNameBasic(path, srcDir) names[path] = importPathToAssumedName(path)
} }
return names, nil return names, nil
@ -657,7 +659,7 @@ func (r *goPackagesResolver) loadPackageNames(importPaths []string, srcDir strin
func (r *goPackagesResolver) scan(refs references) ([]*pkg, error) { func (r *goPackagesResolver) scan(refs references) ([]*pkg, error) {
var loadQueries []string var loadQueries []string
for pkgName := range refs { for pkgName := range refs {
loadQueries = append(loadQueries, "name="+pkgName) loadQueries = append(loadQueries, "iamashamedtousethedisabledqueryname="+pkgName)
} }
sort.Strings(loadQueries) sort.Strings(loadQueries)
cfg := r.env.newPackagesConfig(packages.LoadFiles) cfg := r.env.newPackagesConfig(packages.LoadFiles)
@ -741,18 +743,36 @@ func addExternalCandidates(pass *pass, refs references, filename string) error {
return firstErr return firstErr
} }
// importPathToNameBasic assumes the package name is the base of import path, // notIdentifier reports whether ch is an invalid identifier character.
// except that if the path ends in foo/vN, it assumes the package name is foo. func notIdentifier(ch rune) bool {
func importPathToNameBasic(importPath, srcDir string) (packageName string) { return !('a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' ||
'0' <= ch && ch <= '9' ||
ch == '_' ||
ch >= utf8.RuneSelf && (unicode.IsLetter(ch) || unicode.IsDigit(ch)))
}
// importPathToAssumedName returns the assumed package name of an import path.
// It does this using only string parsing of the import path.
// It picks the last element of the path that does not look like a major
// version, and then picks the valid identifier off the start of that element.
// It is used to determine if a local rename should be added to an import for
// clarity.
// This function could be moved to a standard package and exported if we want
// for use in other tools.
func importPathToAssumedName(importPath string) string {
base := path.Base(importPath) base := path.Base(importPath)
if strings.HasPrefix(base, "v") { if strings.HasPrefix(base, "v") {
if _, err := strconv.Atoi(base[1:]); err == nil { if _, err := strconv.Atoi(base[1:]); err == nil {
dir := path.Dir(importPath) dir := path.Dir(importPath)
if dir != "." { if dir != "." {
return path.Base(dir) base = path.Base(dir)
} }
} }
} }
base = strings.TrimPrefix(base, "go-")
if i := strings.IndexFunc(base, notIdentifier); i >= 0 {
base = base[:i]
}
return base return base
} }

View File

@ -58,6 +58,7 @@ func main() {
mustOpen(api("go1.9.txt")), mustOpen(api("go1.9.txt")),
mustOpen(api("go1.10.txt")), mustOpen(api("go1.10.txt")),
mustOpen(api("go1.11.txt")), mustOpen(api("go1.11.txt")),
mustOpen(api("go1.12.txt")),
) )
sc := bufio.NewScanner(f) sc := bufio.NewScanner(f)

View File

@ -112,6 +112,7 @@ var stdlib = map[string]map[string]bool{
"Reader": true, "Reader": true,
"Repeat": true, "Repeat": true,
"Replace": true, "Replace": true,
"ReplaceAll": true,
"Runes": true, "Runes": true,
"Split": true, "Split": true,
"SplitAfter": true, "SplitAfter": true,
@ -441,6 +442,9 @@ var stdlib = map[string]map[string]bool{
"RequireAnyClientCert": true, "RequireAnyClientCert": true,
"Server": true, "Server": true,
"SignatureScheme": true, "SignatureScheme": true,
"TLS_AES_128_GCM_SHA256": true,
"TLS_AES_256_GCM_SHA384": true,
"TLS_CHACHA20_POLY1305_SHA256": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": true, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": true, "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256": true,
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": true, "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": true,
@ -469,6 +473,7 @@ var stdlib = map[string]map[string]bool{
"VersionTLS10": true, "VersionTLS10": true,
"VersionTLS11": true, "VersionTLS11": true,
"VersionTLS12": true, "VersionTLS12": true,
"VersionTLS13": true,
"X25519": true, "X25519": true,
"X509KeyPair": true, "X509KeyPair": true,
}, },
@ -1835,6 +1840,7 @@ var stdlib = map[string]map[string]bool{
"R_PPC_UADDR32": true, "R_PPC_UADDR32": true,
"R_RISCV": true, "R_RISCV": true,
"R_RISCV_32": true, "R_RISCV_32": true,
"R_RISCV_32_PCREL": true,
"R_RISCV_64": true, "R_RISCV_64": true,
"R_RISCV_ADD16": true, "R_RISCV_ADD16": true,
"R_RISCV_ADD32": true, "R_RISCV_ADD32": true,
@ -2260,6 +2266,7 @@ var stdlib = map[string]map[string]bool{
"IMAGE_FILE_MACHINE_AMD64": true, "IMAGE_FILE_MACHINE_AMD64": true,
"IMAGE_FILE_MACHINE_ARM": true, "IMAGE_FILE_MACHINE_ARM": true,
"IMAGE_FILE_MACHINE_ARM64": true, "IMAGE_FILE_MACHINE_ARM64": true,
"IMAGE_FILE_MACHINE_ARMNT": true,
"IMAGE_FILE_MACHINE_EBC": true, "IMAGE_FILE_MACHINE_EBC": true,
"IMAGE_FILE_MACHINE_I386": true, "IMAGE_FILE_MACHINE_I386": true,
"IMAGE_FILE_MACHINE_IA64": true, "IMAGE_FILE_MACHINE_IA64": true,
@ -2753,6 +2760,7 @@ var stdlib = map[string]map[string]bool{
"New": true, "New": true,
"Note": true, "Note": true,
"Package": true, "Package": true,
"PreserveAST": true,
"Synopsis": true, "Synopsis": true,
"ToHTML": true, "ToHTML": true,
"ToText": true, "ToText": true,
@ -2764,9 +2772,10 @@ var stdlib = map[string]map[string]bool{
"Source": true, "Source": true,
}, },
"go/importer": map[string]bool{ "go/importer": map[string]bool{
"Default": true, "Default": true,
"For": true, "For": true,
"Lookup": true, "ForCompiler": true,
"Lookup": true,
}, },
"go/parser": map[string]bool{ "go/parser": map[string]bool{
"AllErrors": true, "AllErrors": true,
@ -3296,6 +3305,7 @@ var stdlib = map[string]map[string]bool{
"SeekEnd": true, "SeekEnd": true,
"SeekStart": true, "SeekStart": true,
"Seeker": true, "Seeker": true,
"StringWriter": true,
"TeeReader": true, "TeeReader": true,
"WriteCloser": true, "WriteCloser": true,
"WriteSeeker": true, "WriteSeeker": true,
@ -3498,6 +3508,12 @@ var stdlib = map[string]map[string]bool{
"Word": true, "Word": true,
}, },
"math/bits": map[string]bool{ "math/bits": map[string]bool{
"Add": true,
"Add32": true,
"Add64": true,
"Div": true,
"Div32": true,
"Div64": true,
"LeadingZeros": true, "LeadingZeros": true,
"LeadingZeros16": true, "LeadingZeros16": true,
"LeadingZeros32": true, "LeadingZeros32": true,
@ -3508,6 +3524,9 @@ var stdlib = map[string]map[string]bool{
"Len32": true, "Len32": true,
"Len64": true, "Len64": true,
"Len8": true, "Len8": true,
"Mul": true,
"Mul32": true,
"Mul64": true,
"OnesCount": true, "OnesCount": true,
"OnesCount16": true, "OnesCount16": true,
"OnesCount32": true, "OnesCount32": true,
@ -3527,6 +3546,9 @@ var stdlib = map[string]map[string]bool{
"RotateLeft32": true, "RotateLeft32": true,
"RotateLeft64": true, "RotateLeft64": true,
"RotateLeft8": true, "RotateLeft8": true,
"Sub": true,
"Sub32": true,
"Sub64": true,
"TrailingZeros": true, "TrailingZeros": true,
"TrailingZeros16": true, "TrailingZeros16": true,
"TrailingZeros32": true, "TrailingZeros32": true,
@ -3870,6 +3892,7 @@ var stdlib = map[string]map[string]bool{
"StatusTeapot": true, "StatusTeapot": true,
"StatusTemporaryRedirect": true, "StatusTemporaryRedirect": true,
"StatusText": true, "StatusText": true,
"StatusTooEarly": true,
"StatusTooManyRequests": true, "StatusTooManyRequests": true,
"StatusUnauthorized": true, "StatusUnauthorized": true,
"StatusUnavailableForLegalReasons": true, "StatusUnavailableForLegalReasons": true,
@ -4140,6 +4163,7 @@ var stdlib = map[string]map[string]bool{
"Truncate": true, "Truncate": true,
"Unsetenv": true, "Unsetenv": true,
"UserCacheDir": true, "UserCacheDir": true,
"UserHomeDir": true,
}, },
"os/exec": map[string]bool{ "os/exec": map[string]bool{
"Cmd": true, "Cmd": true,
@ -4244,6 +4268,7 @@ var stdlib = map[string]map[string]bool{
"MakeMapWithSize": true, "MakeMapWithSize": true,
"MakeSlice": true, "MakeSlice": true,
"Map": true, "Map": true,
"MapIter": true,
"MapOf": true, "MapOf": true,
"Method": true, "Method": true,
"New": true, "New": true,
@ -4419,9 +4444,12 @@ var stdlib = map[string]map[string]bool{
"Version": true, "Version": true,
}, },
"runtime/debug": map[string]bool{ "runtime/debug": map[string]bool{
"BuildInfo": true,
"FreeOSMemory": true, "FreeOSMemory": true,
"GCStats": true, "GCStats": true,
"Module": true,
"PrintStack": true, "PrintStack": true,
"ReadBuildInfo": true,
"ReadGCStats": true, "ReadGCStats": true,
"SetGCPercent": true, "SetGCPercent": true,
"SetMaxStack": true, "SetMaxStack": true,
@ -4547,6 +4575,7 @@ var stdlib = map[string]map[string]bool{
"Reader": true, "Reader": true,
"Repeat": true, "Repeat": true,
"Replace": true, "Replace": true,
"ReplaceAll": true,
"Replacer": true, "Replacer": true,
"Split": true, "Split": true,
"SplitAfter": true, "SplitAfter": true,
@ -6105,6 +6134,7 @@ var stdlib = map[string]map[string]bool{
"FreeLibrary": true, "FreeLibrary": true,
"Fsid": true, "Fsid": true,
"Fstat": true, "Fstat": true,
"Fstatat": true,
"Fstatfs": true, "Fstatfs": true,
"Fstore_t": true, "Fstore_t": true,
"Fsync": true, "Fsync": true,
@ -9362,6 +9392,7 @@ var stdlib = map[string]map[string]bool{
"Syscall": true, "Syscall": true,
"Syscall12": true, "Syscall12": true,
"Syscall15": true, "Syscall15": true,
"Syscall18": true,
"Syscall6": true, "Syscall6": true,
"Syscall9": true, "Syscall9": true,
"Sysctl": true, "Sysctl": true,
@ -9630,6 +9661,7 @@ var stdlib = map[string]map[string]bool{
"TransmitFile": true, "TransmitFile": true,
"TransmitFileBuffers": true, "TransmitFileBuffers": true,
"Truncate": true, "Truncate": true,
"UNIX_PATH_MAX": true,
"USAGE_MATCH_TYPE_AND": true, "USAGE_MATCH_TYPE_AND": true,
"USAGE_MATCH_TYPE_OR": true, "USAGE_MATCH_TYPE_OR": true,
"UTF16FromString": true, "UTF16FromString": true,

2
vendor/modules.txt vendored
View File

@ -192,7 +192,7 @@ golang.org/x/sys/windows
golang.org/x/text/width golang.org/x/text/width
golang.org/x/text/transform golang.org/x/text/transform
golang.org/x/text/unicode/norm golang.org/x/text/unicode/norm
# golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6 # golang.org/x/tools v0.0.0-20190125232054-379209517ffe
golang.org/x/tools/go/loader golang.org/x/tools/go/loader
golang.org/x/tools/go/packages golang.org/x/tools/go/packages
golang.org/x/tools/imports golang.org/x/tools/imports