use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
use rustc_data_structures::sync::OnceCell;
use rustc_index::bit_set::BitSet;
-use rustc_serialize as serialize;
+use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
use super::*;
// two iterations yield `C` and finally `A` for a final traversal of [E, D, B, C, A]
loop {
let bb = if let Some(&mut (_, ref mut iter)) = self.visit_stack.last_mut() {
- if let Some(&bb) = iter.next() {
+ if let Some(bb) = iter.next() {
bb
} else {
break;
#[derive(Clone)]
pub struct ReversePostorderIter<'a, 'tcx> {
body: &'a Body<'tcx>,
- blocks: &'a Vec<BasicBlock>,
+ blocks: &'a [BasicBlock],
idx: usize,
}
self.cache = OnceCell::new();
}
- /// Returns the &Vec<BasicBlocks> represents the postorder graph for this MIR.
+ /// Returns the `&[BasicBlocks]` represents the postorder graph for this MIR.
#[inline]
- pub(super) fn compute(&self, body: &Body<'_>) -> &Vec<BasicBlock> {
+ pub(super) fn compute(&self, body: &Body<'_>) -> &[BasicBlock] {
self.cache.get_or_init(|| Postorder::new(body, START_BLOCK).map(|(bb, _)| bb).collect())
}
}
-impl<S: serialize::Encoder> serialize::Encodable<S> for PostorderCache {
+impl<S: Encoder> Encodable<S> for PostorderCache {
#[inline]
- fn encode(&self, s: &mut S) -> Result<(), S::Error> {
- s.emit_unit()
- }
+ fn encode(&self, _s: &mut S) {}
}
-impl<D: serialize::Decoder> serialize::Decodable<D> for PostorderCache {
+impl<D: Decoder> Decodable<D> for PostorderCache {
#[inline]
fn decode(_: &mut D) -> Self {
Self::new()