Struct rustc_trait_selection::solve::search_graph::cache::ProvisionalEntry
source · pub(super) struct ProvisionalEntry<'tcx> {
pub(super) response: Option<QueryResult<'tcx>>,
pub(super) depth: StackDepth,
pub(super) input: CanonicalInput<'tcx>,
}Fields§
§response: Option<QueryResult<'tcx>>In case we have a coinductive cycle, this is the the current provisional result of this goal.
This starts out as None for all goals and gets to some
when the goal gets popped from the stack or we rerun evaluation
for this goal to reach a fixpoint.
depth: StackDepthIn case of a cycle, the position of deepest stack entry involved in that cycle. This is monotonically decreasing in the stack as all elements between the current stack element in the deepest stack entry involved have to also be involved in that cycle.
We can only move entries to the global cache once we’re complete done with the cycle. If this entry has not been involved in a cycle, this is just its own depth.
input: CanonicalInput<'tcx>The goal for this entry. Should always be equal to the corresponding goal in the lookup table.
Trait Implementations§
source§impl<'tcx> Clone for ProvisionalEntry<'tcx>
impl<'tcx> Clone for ProvisionalEntry<'tcx>
source§fn clone(&self) -> ProvisionalEntry<'tcx>
fn clone(&self) -> ProvisionalEntry<'tcx>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<'tcx> !RefUnwindSafe for ProvisionalEntry<'tcx>
impl<'tcx> !Send for ProvisionalEntry<'tcx>
impl<'tcx> !Sync for ProvisionalEntry<'tcx>
impl<'tcx> Unpin for ProvisionalEntry<'tcx>
impl<'tcx> !UnwindSafe for ProvisionalEntry<'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
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