Struct rustc_mir_transform::coverage::Instrumentor
source · struct Instrumentor<'a, 'tcx> {
tcx: TyCtxt<'tcx>,
mir_body: &'a mut Body<'tcx>,
source_file: Lrc<SourceFile>,
fn_sig_span: Span,
body_span: Span,
function_source_hash: u64,
basic_coverage_blocks: CoverageGraph,
coverage_counters: CoverageCounters,
}
Fields§
§tcx: TyCtxt<'tcx>
§mir_body: &'a mut Body<'tcx>
§source_file: Lrc<SourceFile>
§fn_sig_span: Span
§body_span: Span
§function_source_hash: u64
§basic_coverage_blocks: CoverageGraph
§coverage_counters: CoverageCounters
Implementations§
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_and_inject_coverage_statements(
&mut self,
coverage_spans: &CoverageSpans
) -> Vec<Mapping>
fn create_mappings_and_inject_coverage_statements( &mut self, coverage_spans: &CoverageSpans ) -> Vec<Mapping>
For each BcbCounter
associated with a BCB node or BCB edge, create
any corresponding mappings (for BCB nodes only), and 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: 344 bytes