Struct rustc_infer::infer::canonical::query_response::QueryTypeRelatingDelegate [−][src]
struct QueryTypeRelatingDelegate<'a, 'tcx> {
infcx: &'a InferCtxt<'a, 'tcx>,
obligations: &'a mut Vec<PredicateObligation<'tcx>>,
param_env: ParamEnv<'tcx>,
cause: &'a ObligationCause<'tcx>,
}Fields
infcx: &'a InferCtxt<'a, 'tcx>obligations: &'a mut Vec<PredicateObligation<'tcx>>param_env: ParamEnv<'tcx>cause: &'a ObligationCause<'tcx>Trait Implementations
impl<'tcx> TypeRelatingDelegate<'tcx> for QueryTypeRelatingDelegate<'_, 'tcx>[src]
impl<'tcx> TypeRelatingDelegate<'tcx> for QueryTypeRelatingDelegate<'_, 'tcx>[src]fn param_env(&self) -> ParamEnv<'tcx>[src]
fn create_next_universe(&mut self) -> UniverseIndex[src]
fn create_next_universe(&mut self) -> UniverseIndex[src]Creates a new universe index. Used when instantiating placeholders.
fn next_existential_region_var(&mut self, from_forall: bool) -> Region<'tcx>[src]
fn next_existential_region_var(&mut self, from_forall: bool) -> Region<'tcx>[src]Creates a new region variable representing a higher-ranked region that is instantiated existentially. This creates an inference variable, typically. Read more
fn next_placeholder_region(
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>[src]
fn next_placeholder_region(
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>[src]Creates a new region variable representing a higher-ranked region that is instantiated universally. This creates a new region placeholder, typically. Read more
fn generalize_existential(&mut self, universe: UniverseIndex) -> Region<'tcx>[src]
fn generalize_existential(&mut self, universe: UniverseIndex) -> Region<'tcx>[src]Creates a new existential region in the given universe. This
is used when handling subtyping and type variables – if we
have that ?X <: Foo<'a>, for example, we would instantiate
?X with a type like Foo<'?0> where '?0 is a fresh
existential variable created by this function. We would then
relate Foo<'?0> with Foo<'a> (and probably add an outlives
relation stating that '?0: 'a). Read more
fn push_outlives(&mut self, sup: Region<'tcx>, sub: Region<'tcx>)[src]
fn push_outlives(&mut self, sup: Region<'tcx>, sub: Region<'tcx>)[src]Push a constraint sup: sub – this constraint must be
satisfied for the two types to be related. sub and sup may
be regions from the type or new variables created through the
delegate. Read more
fn const_equate(&mut self, _a: &'tcx Const<'tcx>, _b: &'tcx Const<'tcx>)[src]
fn normalization() -> NormalizationStrategy[src]
fn normalization() -> NormalizationStrategy[src]Define the normalization strategy to use, eager or lazy.
fn forbid_inference_vars() -> bool[src]
fn forbid_inference_vars() -> bool[src]Enables some optimizations if we do not expect inference variables in the RHS of the relation. Read more
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for QueryTypeRelatingDelegate<'a, 'tcx>
impl<'a, 'tcx> !Send for QueryTypeRelatingDelegate<'a, 'tcx>
impl<'a, 'tcx> !Sync for QueryTypeRelatingDelegate<'a, 'tcx>
impl<'a, 'tcx> Unpin for QueryTypeRelatingDelegate<'a, 'tcx> where
'tcx: 'a,
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for QueryTypeRelatingDelegate<'a, 'tcx>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,