Function rustc_data_structures::transitive_relation::pare_down
source · fn pare_down(candidates: &mut Vec<usize>, closure: &BitMatrix<usize, usize>)
Expand description
Pare down is used as a step in the LUB computation. It edits the
candidates array in place by removing any element j for which
there exists an earlier element i<j such that i -> j. That is,
after you run pare_down
, you know that for all elements that
remain in candidates, they cannot reach any of the elements that
come after them.
Examples follow. Assume that a -> b -> c and x -> y -> z.
- Input:
[a, b, x]
. Output:[a, x]
. - Input:
[b, a, x]
. Output:[b, a, x]
. - Input:
[a, x, b, y]
. Output:[a, x]
.