mirror of https://github.com/docker/cli.git
vendor: golang.org/x/tools v0.8.0
full diff: - https://github.com/golang/mod/compare/v0.9.0...v0.10.0 - https://github.com/golang/tools/compare/v0.7.0...v0.8.0 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
c9d56b8504
commit
56396ba357
|
@ -80,10 +80,10 @@ require (
|
||||||
go.opentelemetry.io/otel/metric v0.27.0 // indirect
|
go.opentelemetry.io/otel/metric v0.27.0 // indirect
|
||||||
go.opentelemetry.io/otel/trace v1.4.1 // indirect
|
go.opentelemetry.io/otel/trace v1.4.1 // indirect
|
||||||
golang.org/x/crypto v0.9.0 // indirect
|
golang.org/x/crypto v0.9.0 // indirect
|
||||||
golang.org/x/mod v0.9.0 // indirect
|
golang.org/x/mod v0.10.0 // indirect
|
||||||
golang.org/x/net v0.10.0 // indirect
|
golang.org/x/net v0.10.0 // indirect
|
||||||
golang.org/x/time v0.3.0 // indirect
|
golang.org/x/time v0.3.0 // indirect
|
||||||
golang.org/x/tools v0.7.0 // indirect
|
golang.org/x/tools v0.8.0 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
|
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
|
||||||
google.golang.org/grpc v1.53.0 // indirect
|
google.golang.org/grpc v1.53.0 // indirect
|
||||||
google.golang.org/protobuf v1.30.0 // indirect
|
google.golang.org/protobuf v1.30.0 // indirect
|
||||||
|
|
|
@ -302,8 +302,8 @@ golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
|
||||||
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
|
golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
|
||||||
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
|
@ -350,8 +350,8 @@ golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGm
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
|
golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y=
|
||||||
golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s=
|
golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
|
|
@ -44,12 +44,12 @@ func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) {
|
||||||
return out.Bytes(), err
|
return out.Bytes(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
// IImportShallow decodes "shallow" types.Package data encoded by IExportShallow
|
// IImportShallow decodes "shallow" types.Package data encoded by
|
||||||
// in the same executable. This function cannot import data from
|
// IExportShallow in the same executable. This function cannot import data from
|
||||||
// cmd/compile or gcexportdata.Write.
|
// cmd/compile or gcexportdata.Write.
|
||||||
func IImportShallow(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string, insert InsertType) (*types.Package, error) {
|
func IImportShallow(fset *token.FileSet, getPackage GetPackageFunc, data []byte, path string, insert InsertType) (*types.Package, error) {
|
||||||
const bundle = false
|
const bundle = false
|
||||||
pkgs, err := iimportCommon(fset, imports, data, bundle, path, insert)
|
pkgs, err := iimportCommon(fset, getPackage, data, bundle, path, insert)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ const (
|
||||||
// If the export data version is not recognized or the format is otherwise
|
// If the export data version is not recognized or the format is otherwise
|
||||||
// compromised, an error is returned.
|
// compromised, an error is returned.
|
||||||
func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) {
|
func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) {
|
||||||
pkgs, err := iimportCommon(fset, imports, data, false, path, nil)
|
pkgs, err := iimportCommon(fset, GetPackageFromMap(imports), data, false, path, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, err
|
return 0, nil, err
|
||||||
}
|
}
|
||||||
|
@ -94,10 +94,33 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []
|
||||||
|
|
||||||
// IImportBundle imports a set of packages from the serialized package bundle.
|
// IImportBundle imports a set of packages from the serialized package bundle.
|
||||||
func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) {
|
func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) {
|
||||||
return iimportCommon(fset, imports, data, true, "", nil)
|
return iimportCommon(fset, GetPackageFromMap(imports), data, true, "", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) {
|
// A GetPackageFunc is a function that gets the package with the given path
|
||||||
|
// from the importer state, creating it (with the specified name) if necessary.
|
||||||
|
// It is an abstraction of the map historically used to memoize package creation.
|
||||||
|
//
|
||||||
|
// Two calls with the same path must return the same package.
|
||||||
|
//
|
||||||
|
// If the given getPackage func returns nil, the import will fail.
|
||||||
|
type GetPackageFunc = func(path, name string) *types.Package
|
||||||
|
|
||||||
|
// GetPackageFromMap returns a GetPackageFunc that retrieves packages from the
|
||||||
|
// given map of package path -> package.
|
||||||
|
//
|
||||||
|
// The resulting func may mutate m: if a requested package is not found, a new
|
||||||
|
// package will be inserted into m.
|
||||||
|
func GetPackageFromMap(m map[string]*types.Package) GetPackageFunc {
|
||||||
|
return func(path, name string) *types.Package {
|
||||||
|
if _, ok := m[path]; !ok {
|
||||||
|
m[path] = types.NewPackage(path, name)
|
||||||
|
}
|
||||||
|
return m[path]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func iimportCommon(fset *token.FileSet, getPackage GetPackageFunc, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) {
|
||||||
const currentVersion = iexportVersionCurrent
|
const currentVersion = iexportVersionCurrent
|
||||||
version := int64(-1)
|
version := int64(-1)
|
||||||
if !debug {
|
if !debug {
|
||||||
|
@ -195,10 +218,9 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data
|
||||||
if pkgPath == "" {
|
if pkgPath == "" {
|
||||||
pkgPath = path
|
pkgPath = path
|
||||||
}
|
}
|
||||||
pkg := imports[pkgPath]
|
pkg := getPackage(pkgPath, pkgName)
|
||||||
if pkg == nil {
|
if pkg == nil {
|
||||||
pkg = types.NewPackage(pkgPath, pkgName)
|
errorf("internal error: getPackage returned nil package for %s", pkgPath)
|
||||||
imports[pkgPath] = pkg
|
|
||||||
} else if pkg.Name() != pkgName {
|
} else if pkg.Name() != pkgName {
|
||||||
errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path)
|
errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path)
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,9 @@
|
||||||
package tokeninternal
|
package tokeninternal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"go/token"
|
"go/token"
|
||||||
|
"sort"
|
||||||
"sync"
|
"sync"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
|
@ -57,3 +59,93 @@ func GetLines(file *token.File) []int {
|
||||||
panic("unexpected token.File size")
|
panic("unexpected token.File size")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AddExistingFiles adds the specified files to the FileSet if they
|
||||||
|
// are not already present. It panics if any pair of files in the
|
||||||
|
// resulting FileSet would overlap.
|
||||||
|
func AddExistingFiles(fset *token.FileSet, files []*token.File) {
|
||||||
|
// Punch through the FileSet encapsulation.
|
||||||
|
type tokenFileSet struct {
|
||||||
|
// This type remained essentially consistent from go1.16 to go1.21.
|
||||||
|
mutex sync.RWMutex
|
||||||
|
base int
|
||||||
|
files []*token.File
|
||||||
|
_ *token.File // changed to atomic.Pointer[token.File] in go1.19
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the size of token.FileSet changes, this will fail to compile.
|
||||||
|
const delta = int64(unsafe.Sizeof(tokenFileSet{})) - int64(unsafe.Sizeof(token.FileSet{}))
|
||||||
|
var _ [-delta * delta]int
|
||||||
|
|
||||||
|
type uP = unsafe.Pointer
|
||||||
|
var ptr *tokenFileSet
|
||||||
|
*(*uP)(uP(&ptr)) = uP(fset)
|
||||||
|
ptr.mutex.Lock()
|
||||||
|
defer ptr.mutex.Unlock()
|
||||||
|
|
||||||
|
// Merge and sort.
|
||||||
|
newFiles := append(ptr.files, files...)
|
||||||
|
sort.Slice(newFiles, func(i, j int) bool {
|
||||||
|
return newFiles[i].Base() < newFiles[j].Base()
|
||||||
|
})
|
||||||
|
|
||||||
|
// Reject overlapping files.
|
||||||
|
// Discard adjacent identical files.
|
||||||
|
out := newFiles[:0]
|
||||||
|
for i, file := range newFiles {
|
||||||
|
if i > 0 {
|
||||||
|
prev := newFiles[i-1]
|
||||||
|
if file == prev {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if prev.Base()+prev.Size()+1 > file.Base() {
|
||||||
|
panic(fmt.Sprintf("file %s (%d-%d) overlaps with file %s (%d-%d)",
|
||||||
|
prev.Name(), prev.Base(), prev.Base()+prev.Size(),
|
||||||
|
file.Name(), file.Base(), file.Base()+file.Size()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out = append(out, file)
|
||||||
|
}
|
||||||
|
newFiles = out
|
||||||
|
|
||||||
|
ptr.files = newFiles
|
||||||
|
|
||||||
|
// Advance FileSet.Base().
|
||||||
|
if len(newFiles) > 0 {
|
||||||
|
last := newFiles[len(newFiles)-1]
|
||||||
|
newBase := last.Base() + last.Size() + 1
|
||||||
|
if ptr.base < newBase {
|
||||||
|
ptr.base = newBase
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FileSetFor returns a new FileSet containing a sequence of new Files with
|
||||||
|
// the same base, size, and line as the input files, for use in APIs that
|
||||||
|
// require a FileSet.
|
||||||
|
//
|
||||||
|
// Precondition: the input files must be non-overlapping, and sorted in order
|
||||||
|
// of their Base.
|
||||||
|
func FileSetFor(files ...*token.File) *token.FileSet {
|
||||||
|
fset := token.NewFileSet()
|
||||||
|
for _, f := range files {
|
||||||
|
f2 := fset.AddFile(f.Name(), f.Base(), f.Size())
|
||||||
|
lines := GetLines(f)
|
||||||
|
f2.SetLines(lines)
|
||||||
|
}
|
||||||
|
return fset
|
||||||
|
}
|
||||||
|
|
||||||
|
// CloneFileSet creates a new FileSet holding all files in fset. It does not
|
||||||
|
// create copies of the token.Files in fset: they are added to the resulting
|
||||||
|
// FileSet unmodified.
|
||||||
|
func CloneFileSet(fset *token.FileSet) *token.FileSet {
|
||||||
|
var files []*token.File
|
||||||
|
fset.Iterate(func(f *token.File) bool {
|
||||||
|
files = append(files, f)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
newFileSet := token.NewFileSet()
|
||||||
|
AddExistingFiles(newFileSet, files)
|
||||||
|
return newFileSet
|
||||||
|
}
|
||||||
|
|
|
@ -316,7 +316,7 @@ go.opentelemetry.io/otel/trace
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
golang.org/x/crypto/ed25519
|
golang.org/x/crypto/ed25519
|
||||||
golang.org/x/crypto/pbkdf2
|
golang.org/x/crypto/pbkdf2
|
||||||
# golang.org/x/mod v0.9.0
|
# golang.org/x/mod v0.10.0
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
golang.org/x/mod/semver
|
golang.org/x/mod/semver
|
||||||
# golang.org/x/net v0.10.0
|
# golang.org/x/net v0.10.0
|
||||||
|
@ -352,7 +352,7 @@ golang.org/x/text/width
|
||||||
# golang.org/x/time v0.3.0
|
# golang.org/x/time v0.3.0
|
||||||
## explicit
|
## explicit
|
||||||
golang.org/x/time/rate
|
golang.org/x/time/rate
|
||||||
# golang.org/x/tools v0.7.0
|
# golang.org/x/tools v0.8.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/tools/cmd/stringer
|
golang.org/x/tools/cmd/stringer
|
||||||
golang.org/x/tools/go/gcexportdata
|
golang.org/x/tools/go/gcexportdata
|
||||||
|
|
Loading…
Reference in New Issue