Julian Brost 85f032dc7c Prevent worst-case exponential complexity in dependency evaluation
So far, calling Checkable::IsReachable() traversed all possible paths to it's
parents. In case a parent is reachable via multiple paths, all it's parents
were evaluated multiple times, result in a worst-case exponential complexity.

With this commit, the implementation keeps track of which checkables were
already visited and uses the already-computed reachability instead of repeating
the computation, ensuring a worst-case linear runtime within the graph size.
2025-07-30 17:13:38 +02:00
..
2021-02-03 09:54:57 +01:00
2022-05-11 17:50:12 +02:00
2023-05-17 18:05:13 +02:00
2023-02-06 11:25:25 +01:00
2023-02-06 11:25:25 +01:00
2021-02-03 09:54:57 +01:00