diff options
| author | Josh Stone <jistone@redhat.com> | 2024-03-23 17:30:12 -0700 |
|---|---|---|
| committer | Josh Stone <jistone@redhat.com> | 2024-03-23 17:30:12 -0700 |
| commit | 87808e71be434dd5ba4fc23115ee84d9a3aaa094 (patch) | |
| tree | ae5c42bb47236268c1407715472ef9f6df1c2ef2 | |
| parent | 2f090c30ddd6b3bbe5c81c087579a5166e7c7278 (diff) | |
| download | rust-87808e71be434dd5ba4fc23115ee84d9a3aaa094.tar.gz rust-87808e71be434dd5ba4fc23115ee84d9a3aaa094.zip | |
Use `chunk_by` when building `ReverseSccGraph`
| -rw-r--r-- | compiler/rustc_borrowck/src/region_infer/reverse_sccs.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/rustc_borrowck/src/region_infer/reverse_sccs.rs b/compiler/rustc_borrowck/src/region_infer/reverse_sccs.rs index eeb944702a7..f94001de357 100644 --- a/compiler/rustc_borrowck/src/region_infer/reverse_sccs.rs +++ b/compiler/rustc_borrowck/src/region_infer/reverse_sccs.rs @@ -1,6 +1,5 @@ use crate::constraints::ConstraintSccIndex; use crate::RegionInferenceContext; -use itertools::Itertools; use rustc_data_structures::fx::{FxIndexMap, FxIndexSet}; use rustc_data_structures::graph::vec_graph::VecGraph; use rustc_data_structures::graph::WithSuccessors; @@ -48,16 +47,16 @@ impl RegionInferenceContext<'_> { .universal_regions .universal_regions() .map(|region| (self.constraint_sccs.scc(region), region)) - .collect_vec(); + .collect::<Vec<_>>(); paired_scc_regions.sort(); let universal_regions = paired_scc_regions.iter().map(|&(_, region)| region).collect(); let mut scc_regions = FxIndexMap::default(); let mut start = 0; - for (scc, group) in &paired_scc_regions.into_iter().group_by(|(scc, _)| *scc) { - let group_size = group.count(); - scc_regions.insert(scc, start..start + group_size); - start += group_size; + for chunk in paired_scc_regions.chunk_by(|&(scc1, _), &(scc2, _)| scc1 == scc2) { + let (scc, _) = chunk[0]; + scc_regions.insert(scc, start..start + chunk.len()); + start += chunk.len(); } self.rev_scc_graph = Some(ReverseSccGraph { graph, scc_regions, universal_regions }); |
