Struct rustc_mir_transform::coverage::Instrumentor
source · struct Instrumentor<'a, 'tcx> {
tcx: TyCtxt<'tcx>,
mir_body: &'a mut Body<'tcx>,
hir_info: ExtractedHirInfo,
basic_coverage_blocks: CoverageGraph,
}Fields§
§tcx: TyCtxt<'tcx>§mir_body: &'a mut Body<'tcx>§hir_info: ExtractedHirInfo§basic_coverage_blocks: CoverageGraphImplementations§
source§impl<'a, 'tcx> Instrumentor<'a, 'tcx>
impl<'a, 'tcx> Instrumentor<'a, 'tcx>
fn new(tcx: TyCtxt<'tcx>, mir_body: &'a mut Body<'tcx>) -> Self
fn inject_counters(&'a mut self)
sourcefn create_mappings(
&self,
coverage_spans: &CoverageSpans,
coverage_counters: &CoverageCounters
) -> Vec<Mapping>
fn create_mappings( &self, coverage_spans: &CoverageSpans, coverage_counters: &CoverageCounters ) -> Vec<Mapping>
For each coverage span extracted from MIR, create a corresponding mapping.
Precondition: All BCBs corresponding to those spans have been given coverage counters.
sourcefn inject_coverage_statements(
&mut self,
bcb_has_coverage_spans: impl Fn(BasicCoverageBlock) -> bool,
coverage_counters: &CoverageCounters
)
fn inject_coverage_statements( &mut self, bcb_has_coverage_spans: impl Fn(BasicCoverageBlock) -> bool, coverage_counters: &CoverageCounters )
For each BCB node or BCB edge that has an associated coverage counter, inject any necessary coverage statements into MIR.
fn make_mir_coverage_kind(&self, counter_kind: &BcbCounter) -> CoverageKind
Auto Trait Implementations§
impl<'a, 'tcx> !RefUnwindSafe for Instrumentor<'a, 'tcx>
impl<'a, 'tcx> !Send for Instrumentor<'a, 'tcx>
impl<'a, 'tcx> !Sync for Instrumentor<'a, 'tcx>
impl<'a, 'tcx> Unpin for Instrumentor<'a, 'tcx>
impl<'a, 'tcx> !UnwindSafe for Instrumentor<'a, 'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 216 bytes