class RBS::TypeAliasDependency
def dependency(start, vertex, nested = nil)
def dependency(start, vertex, nested = nil) if (start == vertex) if (@direct_dependencies[start].include?(vertex) || nested) # Mark a vertex as connected to itself # if it is connected as an edge || a path(traverse multiple edges) @dependencies[start][vertex] = true end else # Mark a pair of vertices as connected while recursively performing DFS @dependencies[start][vertex] = true end # Iterate over the direct dependencies of the vertex @direct_dependencies[vertex]&.each do |type_name| # Invoke the function unless it is already checked dependency(start, type_name, start == type_name) unless @dependencies[start][type_name] end end