Struct rustc_infer::infer::type_variable::TypeVariableStorage
source · pub struct TypeVariableStorage<'tcx> {
values: IndexVec<TyVid, TypeVariableData>,
eq_relations: UnificationTableStorage<TyVidEqKey<'tcx>>,
}
Fields§
§values: IndexVec<TyVid, TypeVariableData>
The origins of each type variable.
eq_relations: UnificationTableStorage<TyVidEqKey<'tcx>>
Two variables are unified in eq_relations
when we have a
constraint ?X == ?Y
. This table also stores, for each key,
the known value.
Implementations§
source§impl<'tcx> TypeVariableStorage<'tcx>
impl<'tcx> TypeVariableStorage<'tcx>
pub fn new() -> TypeVariableStorage<'tcx>
pub(crate) fn with_log<'a>( &'a mut self, undo_log: &'a mut InferCtxtUndoLogs<'tcx> ) -> TypeVariableTable<'a, 'tcx>
pub(crate) fn eq_relations_ref( &self ) -> &UnificationTableStorage<TyVidEqKey<'tcx>>
pub(super) fn finalize_rollback(&mut self)
Trait Implementations§
source§impl<'tcx> Clone for TypeVariableStorage<'tcx>
impl<'tcx> Clone for TypeVariableStorage<'tcx>
source§fn clone(&self) -> TypeVariableStorage<'tcx>
fn clone(&self) -> TypeVariableStorage<'tcx>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl<'tcx> Freeze for TypeVariableStorage<'tcx>
impl<'tcx> !RefUnwindSafe for TypeVariableStorage<'tcx>
impl<'tcx> !Send for TypeVariableStorage<'tcx>
impl<'tcx> !Sync for TypeVariableStorage<'tcx>
impl<'tcx> Unpin for TypeVariableStorage<'tcx>
impl<'tcx> !UnwindSafe for TypeVariableStorage<'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
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<T> Filterable for T
impl<T> Filterable for T
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<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> 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>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for 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: 48 bytes