Struct rustc_trait_selection::solve::search_graph::cache::ProvisionalCache
source · pub(super) struct ProvisionalCache<'tcx> {
pub(super) entries: IndexVec<EntryIndex, ProvisionalEntry<'tcx>>,
pub(super) lookup_table: FxHashMap<CanonicalInput<'tcx>, EntryIndex>,
}Fields§
§entries: IndexVec<EntryIndex, ProvisionalEntry<'tcx>>§lookup_table: FxHashMap<CanonicalInput<'tcx>, EntryIndex>Implementations§
source§impl<'tcx> ProvisionalCache<'tcx>
impl<'tcx> ProvisionalCache<'tcx>
pub(super) fn empty() -> ProvisionalCache<'tcx>
pub(super) fn is_empty(&self) -> bool
sourcepub(super) fn add_dependency_of_leaf_on(&mut self, target: EntryIndex)
pub(super) fn add_dependency_of_leaf_on(&mut self, target: EntryIndex)
Adds a dependency from the current leaf to target in the cache
to prevent us from moving any goals which depend on the current leaf
to the global cache while we’re still computing target.
Its important to note that target may already be part of a different cycle.
In this case we have to ensure that we also depend on all other goals
in the existing cycle in addition to the potentially direct cycle with target.
pub(super) fn depth(&self, entry_index: EntryIndex) -> StackDepth
pub(super) fn provisional_result( &self, entry_index: EntryIndex ) -> QueryResult<'tcx>
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for ProvisionalCache<'tcx>
impl<'tcx> !Send for ProvisionalCache<'tcx>
impl<'tcx> !Sync for ProvisionalCache<'tcx>
impl<'tcx> Unpin for ProvisionalCache<'tcx>
impl<'tcx> !UnwindSafe for ProvisionalCache<'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:56 bytes