pub struct CoverageEarlyInfo {
pub num_block_markers: usize,
pub branch_spans: Vec<BranchSpan>,
}Expand description
Coverage information for a function, collected in advance at the THIR/MIR
boundary during MIR building, and attached to the corresponding mir::Body.
This side-data is “early” in that it must be collected prior to the main
instrumentation step, in contrast to the main CoverageMirInfo produced
by instrumentation itself.
Used by the InstrumentCoverage MIR pass.
Fields§
§num_block_markers: usize1 more than the highest-numbered CoverageKind::BlockMarker that was
injected into the MIR body. This makes it possible to allocate per-ID
data structures without having to scan the entire body first.
branch_spans: Vec<BranchSpan>Trait Implementations§
Source§impl Clone for CoverageEarlyInfo
impl Clone for CoverageEarlyInfo
Source§fn clone(&self) -> CoverageEarlyInfo
fn clone(&self) -> CoverageEarlyInfo
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CoverageEarlyInfo
impl Debug for CoverageEarlyInfo
Source§impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for CoverageEarlyInfo
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for CoverageEarlyInfo
Source§impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for CoverageEarlyInfo
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for CoverageEarlyInfo
Source§impl Hash for CoverageEarlyInfo
impl Hash for CoverageEarlyInfo
Source§impl StableHash for CoverageEarlyInfo
impl StableHash for CoverageEarlyInfo
fn stable_hash<__Hcx: StableHashCtxt>( &self, __hcx: &mut __Hcx, __hasher: &mut StableHasher, )
Auto Trait Implementations§
impl DynSend for CoverageEarlyInfo
impl DynSync for CoverageEarlyInfo
impl Freeze for CoverageEarlyInfo
impl RefUnwindSafe for CoverageEarlyInfo
impl Send for CoverageEarlyInfo
impl Sync for CoverageEarlyInfo
impl Unpin for CoverageEarlyInfo
impl UnsafeUnpin for CoverageEarlyInfo
impl UnwindSafe for CoverageEarlyInfo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<'tcx, T> DepNodeKey<'tcx> for Twhere
T: StableHash + Debug,
impl<'tcx, T> DepNodeKey<'tcx> for Twhere
T: StableHash + Debug,
default fn key_fingerprint_style() -> KeyFingerprintStyle
Source§default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
default fn to_fingerprint(&self, tcx: TyCtxt<'tcx>) -> Fingerprint
Fingerprint to be used
in DepNode.Source§default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
default fn try_recover_key(_: TyCtxt<'tcx>, _: &DepNode) -> Option<T>
DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<K> IntoQueryKey<K> for K
impl<K> IntoQueryKey<K> for K
Source§fn into_query_key(self) -> K
fn into_query_key(self) -> K
Self to K.
This should always be a very cheap conversion, e.g. LocalDefId::to_def_id.Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
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: 32 bytes