diff options
| author | Maybe Waffle <waffle.lapkin@gmail.com> | 2024-04-14 15:40:26 +0000 | 
|---|---|---|
| committer | Maybe Waffle <waffle.lapkin@gmail.com> | 2024-04-14 15:48:53 +0000 | 
| commit | 0d5fc9bf584f0e8700f0c3d2854bb6c70453f624 (patch) | |
| tree | 163982785183644158a7d71d90407fa85e9a41a1 /compiler/rustc_mir_transform/src/coverage/graph.rs | |
| parent | 398da593a53161c1ef9ca7dabbc5e9edf67deac6 (diff) | |
| download | rust-0d5fc9bf584f0e8700f0c3d2854bb6c70453f624.tar.gz rust-0d5fc9bf584f0e8700f0c3d2854bb6c70453f624.zip | |
Merge `{With,Graph}{Successors,Predecessors}` into `{Successors,Predecessors}`
Now with GAT!
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/graph.rs')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/graph.rs | 22 | 
1 files changed, 7 insertions, 15 deletions
| diff --git a/compiler/rustc_mir_transform/src/coverage/graph.rs b/compiler/rustc_mir_transform/src/coverage/graph.rs index 4cbad47cdc8..b51ee3a0723 100644 --- a/compiler/rustc_mir_transform/src/coverage/graph.rs +++ b/compiler/rustc_mir_transform/src/coverage/graph.rs @@ -1,7 +1,7 @@ use rustc_data_structures::captures::Captures; use rustc_data_structures::fx::FxHashSet; use rustc_data_structures::graph::dominators::{self, Dominators}; -use rustc_data_structures::graph::{self, DirectedGraph, GraphSuccessors, WithStartNode}; +use rustc_data_structures::graph::{self, DirectedGraph, WithStartNode}; use rustc_index::bit_set::BitSet; use rustc_index::IndexVec; use rustc_middle::mir::{self, BasicBlock, Terminator, TerminatorKind}; @@ -208,28 +208,20 @@ impl graph::WithStartNode for CoverageGraph { } } -type BcbSuccessors<'graph> = std::slice::Iter<'graph, BasicCoverageBlock>; +impl graph::Successors for CoverageGraph { + type Successors<'g> = std::iter::Cloned<std::slice::Iter<'g, BasicCoverageBlock>>; -impl<'graph> graph::GraphSuccessors<'graph> for CoverageGraph { - type Item = BasicCoverageBlock; - type Iter = std::iter::Cloned<BcbSuccessors<'graph>>; -} - -impl graph::WithSuccessors for CoverageGraph { #[inline] - fn successors(&self, node: Self::Node) -> <Self as GraphSuccessors<'_>>::Iter { + fn successors(&self, node: Self::Node) -> Self::Successors<'_> { self.successors[node].iter().cloned() } } -impl<'graph> graph::GraphPredecessors<'graph> for CoverageGraph { - type Item = BasicCoverageBlock; - type Iter = std::iter::Copied<std::slice::Iter<'graph, BasicCoverageBlock>>; -} +impl graph::Predecessors for CoverageGraph { + type Predecessors<'g> = std::iter::Copied<std::slice::Iter<'g, BasicCoverageBlock>>; -impl graph::WithPredecessors for CoverageGraph { #[inline] - fn predecessors(&self, node: Self::Node) -> <Self as graph::GraphPredecessors<'_>>::Iter { + fn predecessors(&self, node: Self::Node) -> Self::Predecessors<'_> { self.predecessors[node].iter().copied() } } | 
