Update go version
This commit is contained in:
33
vendor/golang.org/x/tools/go/packages/visit.go
generated
vendored
33
vendor/golang.org/x/tools/go/packages/visit.go
generated
vendored
@@ -5,11 +5,11 @@
|
||||
package packages
|
||||
|
||||
import (
|
||||
"cmp"
|
||||
"fmt"
|
||||
"iter"
|
||||
"os"
|
||||
"slices"
|
||||
|
||||
"golang.org/x/tools/internal/moremaps"
|
||||
)
|
||||
|
||||
// Visit visits all the packages in the import graph whose roots are
|
||||
@@ -40,7 +40,7 @@ func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) {
|
||||
seen[pkg] = true
|
||||
|
||||
if pre == nil || pre(pkg) {
|
||||
for _, imp := range sorted(pkg.Imports) { // for determinism
|
||||
for _, imp := range moremaps.Sorted(pkg.Imports) { // for determinism
|
||||
visit(imp)
|
||||
}
|
||||
}
|
||||
@@ -88,7 +88,7 @@ func Postorder(pkgs []*Package) iter.Seq[*Package] {
|
||||
visit = func(pkg *Package) bool {
|
||||
if !seen[pkg] {
|
||||
seen[pkg] = true
|
||||
for _, imp := range sorted(pkg.Imports) { // for determinism
|
||||
for _, imp := range moremaps.Sorted(pkg.Imports) { // for determinism
|
||||
if !visit(imp) {
|
||||
return false
|
||||
}
|
||||
@@ -106,28 +106,3 @@ func Postorder(pkgs []*Package) iter.Seq[*Package] {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// -- copied from golang.org.x/tools/gopls/internal/util/moremaps --
|
||||
|
||||
// sorted returns an iterator over the entries of m in key order.
|
||||
func sorted[M ~map[K]V, K cmp.Ordered, V any](m M) iter.Seq2[K, V] {
|
||||
// TODO(adonovan): use maps.Sorted if proposal #68598 is accepted.
|
||||
return func(yield func(K, V) bool) {
|
||||
keys := keySlice(m)
|
||||
slices.Sort(keys)
|
||||
for _, k := range keys {
|
||||
if !yield(k, m[k]) {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// KeySlice returns the keys of the map M, like slices.Collect(maps.Keys(m)).
|
||||
func keySlice[M ~map[K]V, K comparable, V any](m M) []K {
|
||||
r := make([]K, 0, len(m))
|
||||
for k := range m {
|
||||
r = append(r, k)
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user