pub struct DeadCodeLivenessSnapshot {
pub live: LocalDefIdSet,
pub sites_by_defid: LocalDefIdMap<Vec<LocalDefId>>,
pub sites: LocalDefIdMap<Span>,
}Expand description
A single snapshot of dead-code liveness analysis state.
Fields§
§live: LocalDefIdSet§sites_by_defid: LocalDefIdMap<Vec<LocalDefId>>This maps defs that were only used from items annotated with
#[rustc_trivial_field_reads] to those items
sites: LocalDefIdMap<Span>For each of the items annotated with #[rustc_trivial_field_reads],
we store the attr span here, so we can use it for diagnostics if needed
Implementations§
Source§impl DeadCodeLivenessSnapshot
impl DeadCodeLivenessSnapshot
pub fn is_live(&self, id: &LocalDefId) -> bool
pub fn trivial_usage_sites( &self, def_id: &LocalDefId, ) -> impl Iterator<Item = LocalDefId>
pub fn trivial_usage_site_span_by_id(&self, site_id: LocalDefId) -> Span
Trait Implementations§
Source§impl Clone for DeadCodeLivenessSnapshot
impl Clone for DeadCodeLivenessSnapshot
Source§impl Debug for DeadCodeLivenessSnapshot
impl Debug for DeadCodeLivenessSnapshot
Source§impl StableHash for DeadCodeLivenessSnapshot
impl StableHash for DeadCodeLivenessSnapshot
fn stable_hash<__Hcx: StableHashCtxt>( &self, __hcx: &mut __Hcx, __hasher: &mut StableHasher, )
Auto Trait Implementations§
impl DynSend for DeadCodeLivenessSnapshot
impl DynSync for DeadCodeLivenessSnapshot
impl Forget for DeadCodeLivenessSnapshot
impl Freeze for DeadCodeLivenessSnapshot
impl Move for DeadCodeLivenessSnapshot
impl RefUnwindSafe for DeadCodeLivenessSnapshot
impl Send for DeadCodeLivenessSnapshot
impl Sync for DeadCodeLivenessSnapshot
impl Unpin for DeadCodeLivenessSnapshot
impl UnsafeUnpin for DeadCodeLivenessSnapshot
impl UnwindSafe for DeadCodeLivenessSnapshot
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
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
This method turns a query key into an opaque
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>
This method tries to recover the query key from the given
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> ⓘ
Converts
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> ⓘ
Converts
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
Argument conversion from
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: 96 bytes