]> git.lizzy.rs Git - rust.git/commitdiff
Avoid predecessors having Drop impls
authorMark Rousskov <mark.simulacrum@gmail.com>
Sat, 8 May 2021 01:00:03 +0000 (21:00 -0400)
committerMark Rousskov <mark.simulacrum@gmail.com>
Sat, 8 May 2021 02:44:08 +0000 (22:44 -0400)
compiler/rustc_middle/src/mir/mod.rs
compiler/rustc_mir/src/transform/coverage/graph.rs

index 252b5fc70de9a4028ced2afefeb57c22295ac1bb..de0c4f2e30e8b0e12ac92e6a3f0d114c9f1dcd81 100644 (file)
@@ -461,7 +461,7 @@ pub fn terminator_loc(&self, bb: BasicBlock) -> Location {
     }
 
     #[inline]
-    pub fn predecessors(&self) -> impl std::ops::Deref<Target = Predecessors> + '_ {
+    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<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()
     }
 }
 
index 6f5fa858e25379bd9ad93a231cf2784da25a2e37..0521f507ec7d3908e7d1b3e729af5124c86caf10 100644 (file)
@@ -269,13 +269,13 @@ fn successors(&self, node: Self::Node) -> <Self as GraphSuccessors<'_>>::Iter {
 
 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()
     }
 }