From 0367e24f944e5e3241a548ca2e9472f24cab3566 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Fri, 7 May 2021 21:00:03 -0400 Subject: [PATCH] Avoid predecessors having Drop impls --- compiler/rustc_middle/src/mir/mod.rs | 6 +++--- compiler/rustc_mir/src/transform/coverage/graph.rs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/rustc_middle/src/mir/mod.rs b/compiler/rustc_middle/src/mir/mod.rs index 252b5fc70de9a..de0c4f2e30e8b 100644 --- a/compiler/rustc_middle/src/mir/mod.rs +++ b/compiler/rustc_middle/src/mir/mod.rs @@ -461,7 +461,7 @@ impl<'tcx> Body<'tcx> { } #[inline] - pub fn predecessors(&self) -> impl std::ops::Deref + '_ { + pub fn predecessors(&self) -> &Predecessors { self.predecessor_cache.compute(&self.basic_blocks) } @@ -2815,13 +2815,13 @@ impl<'a, 'b> graph::GraphSuccessors<'b> for Body<'a> { impl graph::GraphPredecessors<'graph> for Body<'tcx> { type Item = BasicBlock; - type Iter = smallvec::IntoIter<[BasicBlock; 4]>; + type Iter = std::iter::Copied>; } impl graph::WithPredecessors for Body<'tcx> { #[inline] fn predecessors(&self, node: Self::Node) -> >::Iter { - self.predecessors()[node].clone().into_iter() + self.predecessors()[node].iter().copied() } } diff --git a/compiler/rustc_mir/src/transform/coverage/graph.rs b/compiler/rustc_mir/src/transform/coverage/graph.rs index 6f5fa858e2537..0521f507ec7d3 100644 --- a/compiler/rustc_mir/src/transform/coverage/graph.rs +++ b/compiler/rustc_mir/src/transform/coverage/graph.rs @@ -269,13 +269,13 @@ impl graph::WithSuccessors for CoverageGraph { impl graph::GraphPredecessors<'graph> for CoverageGraph { type Item = BasicCoverageBlock; - type Iter = std::vec::IntoIter; + type Iter = std::iter::Copied>; } impl graph::WithPredecessors for CoverageGraph { #[inline] fn predecessors(&self, node: Self::Node) -> >::Iter { - self.predecessors[node].clone().into_iter() + self.predecessors[node].iter().copied() } }