Struct rustc_mir_transform::coverage::spans::CoverageSpan
source · struct CoverageSpan {
span: Span,
bcb: BasicCoverageBlock,
merged_spans: Vec<Span>,
is_closure: bool,
}Expand description
A BCB is deconstructed into one or more Spans. Each Span maps to a CoverageSpan that
references the originating BCB and one or more MIR Statements and/or Terminators.
Initially, the Spans come from the Statements and Terminators, but subsequent
transforms can combine adjacent Spans and CoverageSpan from the same BCB, merging the
merged_spans vectors, and the Spans to cover the extent of the combined Spans.
Note: A span merged into another CoverageSpan may come from a BasicBlock that
is not part of the CoverageSpan bcb if the statement was included because it’s Span matches
or is subsumed by the Span associated with this CoverageSpan, and it’s BasicBlock
dominates() the BasicBlocks in this CoverageSpan.
Fields§
§span: Span§bcb: BasicCoverageBlock§merged_spans: Vec<Span>List of all the original spans from MIR that have been merged into this span. Mainly used to precisely skip over gaps when truncating a span.
is_closure: boolImplementations§
source§impl CoverageSpan
impl CoverageSpan
fn new(span: Span, bcb: BasicCoverageBlock, is_closure: bool) -> Self
pub fn merge_from(&mut self, other: &Self)
pub fn cutoff_statements_at(&mut self, cutoff_pos: BytePos)
pub fn is_mergeable(&self, other: &Self) -> bool
pub fn is_in_same_bcb(&self, other: &Self) -> bool
Trait Implementations§
source§impl Clone for CoverageSpan
impl Clone for CoverageSpan
source§fn clone(&self) -> CoverageSpan
fn clone(&self) -> CoverageSpan
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl RefUnwindSafe for CoverageSpan
impl Send for CoverageSpan
impl Sync for CoverageSpan
impl Unpin for CoverageSpan
impl UnwindSafe for CoverageSpan
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
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: 40 bytes