Update go version
This commit is contained in:
23
vendor/honnef.co/go/tools/internal/xtools-internal/graph/reachable.go
vendored
Normal file
23
vendor/honnef.co/go/tools/internal/xtools-internal/graph/reachable.go
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2026 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 graph
|
||||
|
||||
// Reachable returns the set of nodes reachable from the given roots.
|
||||
func Reachable[NodeID comparable](g Graph[NodeID], roots ...NodeID) map[NodeID]bool {
|
||||
seen := make(map[NodeID]bool)
|
||||
var visit func(node NodeID)
|
||||
visit = func(node NodeID) {
|
||||
if !seen[node] {
|
||||
seen[node] = true
|
||||
for e := range g.Out(node) {
|
||||
visit(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, root := range roots {
|
||||
visit(root)
|
||||
}
|
||||
return seen
|
||||
}
|
||||
Reference in New Issue
Block a user