Greatly simplify lifetime captures in edition 2024
This commit is contained in:
parent
46420c9607
commit
12e3911d81
84 changed files with 223 additions and 294 deletions
|
@ -2,7 +2,6 @@ use std::cmp::Ordering;
|
|||
use std::ops::{Index, IndexMut};
|
||||
use std::{mem, slice};
|
||||
|
||||
use rustc_data_structures::captures::Captures;
|
||||
use rustc_data_structures::fx::FxHashSet;
|
||||
use rustc_data_structures::graph::dominators::Dominators;
|
||||
use rustc_data_structures::graph::{self, DirectedGraph, StartNode};
|
||||
|
@ -218,7 +217,7 @@ impl CoverageGraph {
|
|||
pub(crate) fn reloop_predecessors(
|
||||
&self,
|
||||
to_bcb: BasicCoverageBlock,
|
||||
) -> impl Iterator<Item = BasicCoverageBlock> + Captures<'_> {
|
||||
) -> impl Iterator<Item = BasicCoverageBlock> {
|
||||
self.predecessors[to_bcb].iter().copied().filter(move |&pred| self.dominates(to_bcb, pred))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use rustc_data_structures::captures::Captures;
|
||||
use rustc_index::bit_set::DenseBitSet;
|
||||
use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags;
|
||||
use rustc_middle::mir::coverage::{BasicCoverageBlock, CoverageIdsInfo, CoverageKind, MappingKind};
|
||||
|
@ -153,7 +152,7 @@ fn coverage_ids_info<'tcx>(
|
|||
|
||||
fn all_coverage_in_mir_body<'a, 'tcx>(
|
||||
body: &'a Body<'tcx>,
|
||||
) -> impl Iterator<Item = &'a CoverageKind> + Captures<'tcx> {
|
||||
) -> impl Iterator<Item = &'a CoverageKind> {
|
||||
body.basic_blocks.iter().flat_map(|bb_data| &bb_data.statements).filter_map(|statement| {
|
||||
match statement.kind {
|
||||
StatementKind::Coverage(ref kind) if !is_inlined(body, statement) => Some(kind),
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
use std::collections::VecDeque;
|
||||
|
||||
use rustc_data_structures::captures::Captures;
|
||||
use rustc_data_structures::fx::FxHashSet;
|
||||
use rustc_middle::mir;
|
||||
use rustc_span::{DesugaringKind, ExpnKind, MacroKind, Span};
|
||||
|
@ -182,7 +181,7 @@ fn divide_spans_into_buckets(input_covspans: Vec<Covspan>, holes: &[Hole]) -> Ve
|
|||
fn drain_front_while<'a, T>(
|
||||
queue: &'a mut VecDeque<T>,
|
||||
mut pred_fn: impl FnMut(&T) -> bool,
|
||||
) -> impl Iterator<Item = T> + Captures<'a> {
|
||||
) -> impl Iterator<Item = T> {
|
||||
std::iter::from_fn(move || if pred_fn(queue.front()?) { queue.pop_front() } else { None })
|
||||
}
|
||||
|
||||
|
|
|
@ -172,11 +172,11 @@ impl HasBottom for ConditionSet<'_> {
|
|||
}
|
||||
|
||||
impl<'a> ConditionSet<'a> {
|
||||
fn iter(self) -> impl Iterator<Item = Condition> + 'a {
|
||||
fn iter(self) -> impl Iterator<Item = Condition> {
|
||||
self.0.iter().copied()
|
||||
}
|
||||
|
||||
fn iter_matches(self, value: ScalarInt) -> impl Iterator<Item = Condition> + 'a {
|
||||
fn iter_matches(self, value: ScalarInt) -> impl Iterator<Item = Condition> {
|
||||
self.iter().filter(move |c| c.matches(value))
|
||||
}
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ impl<'tcx> ReplacementMap<'tcx> {
|
|||
fn place_fragments(
|
||||
&self,
|
||||
place: Place<'tcx>,
|
||||
) -> Option<impl Iterator<Item = (FieldIdx, Ty<'tcx>, Local)> + '_> {
|
||||
) -> Option<impl Iterator<Item = (FieldIdx, Ty<'tcx>, Local)>> {
|
||||
let local = place.as_local()?;
|
||||
let fields = self.fragments[local].as_ref()?;
|
||||
Some(fields.iter_enumerated().filter_map(|(field, &opt_ty_local)| {
|
||||
|
|
|
@ -138,7 +138,7 @@ impl SsaLocals {
|
|||
pub(super) fn assignments<'a, 'tcx>(
|
||||
&'a self,
|
||||
body: &'a Body<'tcx>,
|
||||
) -> impl Iterator<Item = (Local, &'a Rvalue<'tcx>, Location)> + 'a {
|
||||
) -> impl Iterator<Item = (Local, &'a Rvalue<'tcx>, Location)> {
|
||||
self.assignment_order.iter().filter_map(|&local| {
|
||||
if let Set1::One(DefLocation::Assignment(loc)) = self.assignments[local] {
|
||||
let stmt = body.stmt_at(loc).left()?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue