func()

in step.go [213:238]


func (s *Step) depends(other *Step) bool {
	if s == nil || other == nil || s.w == nil || s.w != other.w {
		return false
	}
	deps := s.w.Dependencies
	steps := s.w.Steps
	q := deps[s.name]
	seen := map[string]bool{}

	// Do a BFS search on s's dependencies, looking for the target dependency. Don't revisit visited dependencies.
	for i := 0; i < len(q); i++ {
		name := q[i]
		if seen[name] {
			continue
		}
		seen[name] = true
		if steps[name] == other {
			return true
		}
		for _, dep := range deps[name] {
			q = append(q, dep)
		}
	}

	return false
}