Julian Brost 63e9ef58ba 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-08-04 10:42:20 +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