query: faster stack reversal in remove_cycle

This commit is contained in:
ljedrz 2018-12-19 13:08:17 +01:00
parent e7b4bc35e9
commit 3294a69abb

View file

@ -390,11 +390,9 @@ fn remove_cycle<'tcx>(
DUMMY_SP,
&mut stack,
&mut visited) {
// Reverse the stack so earlier entries require later entries
stack.reverse();
// The stack is a vector of pairs of spans and queries
let (mut spans, queries): (Vec<_>, Vec<_>) = stack.into_iter().unzip();
// The stack is a vector of pairs of spans and queries; reverse it so that
// the earlier entries require later entries
let (mut spans, queries): (Vec<_>, Vec<_>) = stack.into_iter().rev().unzip();
// Shift the spans so that queries are matched with the span for their waitee
spans.rotate_right(1);