Trait rustc_infer::infer::nll_relate::TypeRelatingDelegate [−][src]
Required methods
fn param_env(&self) -> ParamEnv<'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.
fn const_equate(&mut self, a: &'tcx Const<'tcx>, b: &'tcx Const<'tcx>)[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, was_placeholder: bool) -> Region<'tcx>[src]
Creates a new region variable representing a higher-ranked region that is instantiated existentially. This creates an inference variable, typically.
So e.g., if you have for<'a> fn(..) <: for<'b> fn(..), then
we will invoke this method to instantiate 'a with an
inference variable (though 'b would be instantiated first,
as a placeholder).
fn next_placeholder_region(
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>[src]
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>
Creates a new region variable representing a higher-ranked region that is instantiated universally. This creates a new region placeholder, typically.
So e.g., if you have for<'a> fn(..) <: for<'b> fn(..), then
we will invoke this method to instantiate 'b with a
placeholder region.
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).
fn normalization() -> NormalizationStrategy[src]
Define the normalization strategy to use, eager or lazy.
fn forbid_inference_vars() -> bool[src]
Enables some optimizations if we do not expect inference variables in the RHS of the relation.
Implementors
impl<'tcx> TypeRelatingDelegate<'tcx> for QueryTypeRelatingDelegate<'_, 'tcx>[src]
fn param_env(&self) -> ParamEnv<'tcx>[src]
fn create_next_universe(&mut self) -> UniverseIndex[src]
fn next_existential_region_var(&mut self, from_forall: bool) -> Region<'tcx>[src]
fn next_placeholder_region(
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>[src]
&mut self,
placeholder: PlaceholderRegion
) -> Region<'tcx>