}
#[inline]
- pub fn predecessors(&self) -> impl std::ops::Deref<Target = Predecessors> + '_ {
+ pub fn predecessors(&self) -> &Predecessors {
self.predecessor_cache.compute(&self.basic_blocks)
}
impl graph::GraphPredecessors<'graph> for Body<'tcx> {
type Item = BasicBlock;
- type Iter = smallvec::IntoIter<[BasicBlock; 4]>;
+ type Iter = std::iter::Copied<std::slice::Iter<'graph, BasicBlock>>;
}
impl graph::WithPredecessors for Body<'tcx> {
#[inline]
fn predecessors(&self, node: Self::Node) -> <Self as graph::GraphPredecessors<'_>>::Iter {
- self.predecessors()[node].clone().into_iter()
+ self.predecessors()[node].iter().copied()
}
}
impl graph::GraphPredecessors<'graph> for CoverageGraph {
type Item = BasicCoverageBlock;
- type Iter = std::vec::IntoIter<BasicCoverageBlock>;
+ type Iter = std::iter::Copied<std::slice::Iter<'graph, BasicCoverageBlock>>;
}
impl graph::WithPredecessors for CoverageGraph {
#[inline]
fn predecessors(&self, node: Self::Node) -> <Self as graph::GraphPredecessors<'_>>::Iter {
- self.predecessors[node].clone().into_iter()
+ self.predecessors[node].iter().copied()
}
}