[−][src]Trait rustc_middle::ty::relate::TypeRelation
Required methods
pub fn tcx(&self) -> TyCtxt<'tcx>[src]
pub fn param_env(&self) -> ParamEnv<'tcx>[src]
pub fn tag(&self) -> &'static str[src]
Returns a static string we can use for printouts.
pub fn a_is_expected(&self) -> bool[src]
Returns true if the value a is the "expected" type in the
relation. Just affects error messages.
pub fn relate_with_variance<T: Relate<'tcx>>(
&mut self,
variance: Variance,
a: T,
b: T
) -> RelateResult<'tcx, T>[src]
&mut self,
variance: Variance,
a: T,
b: T
) -> RelateResult<'tcx, T>
Switch variance for the purpose of relating a and b.
pub fn tys(&mut self, a: Ty<'tcx>, b: Ty<'tcx>) -> RelateResult<'tcx, Ty<'tcx>>[src]
pub fn regions(
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, Region<'tcx>>[src]
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, Region<'tcx>>
pub fn consts(
&mut self,
a: &'tcx Const<'tcx>,
b: &'tcx Const<'tcx>
) -> RelateResult<'tcx, &'tcx Const<'tcx>>[src]
&mut self,
a: &'tcx Const<'tcx>,
b: &'tcx Const<'tcx>
) -> RelateResult<'tcx, &'tcx Const<'tcx>>
pub fn binders<T>(
&mut self,
a: Binder<T>,
b: Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'tcx>, [src]
&mut self,
a: Binder<T>,
b: Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'tcx>,
Provided methods
pub fn with_cause<F, R>(&mut self, _cause: Cause, f: F) -> R where
F: FnOnce(&mut Self) -> R, [src]
F: FnOnce(&mut Self) -> R,
pub fn relate<T: Relate<'tcx>>(&mut self, a: T, b: T) -> RelateResult<'tcx, T>[src]
Generic relation routine suitable for most anything.
pub fn relate_item_substs(
&mut self,
item_def_id: DefId,
a_subst: SubstsRef<'tcx>,
b_subst: SubstsRef<'tcx>
) -> RelateResult<'tcx, SubstsRef<'tcx>>[src]
&mut self,
item_def_id: DefId,
a_subst: SubstsRef<'tcx>,
b_subst: SubstsRef<'tcx>
) -> RelateResult<'tcx, SubstsRef<'tcx>>
Relate the two substitutions for the given item. The default is to look up the variance for the item and proceed accordingly.
Implementors
impl<'tcx> TypeRelation<'tcx> for Match<'tcx>[src]
pub fn tag(&self) -> &'static str[src]
pub fn tcx(&self) -> TyCtxt<'tcx>[src]
pub fn param_env(&self) -> ParamEnv<'tcx>[src]
pub fn a_is_expected(&self) -> bool[src]
pub fn relate_with_variance<T: Relate<'tcx>>(
&mut self,
_: Variance,
a: T,
b: T
) -> RelateResult<'tcx, T>[src]
&mut self,
_: Variance,
a: T,
b: T
) -> RelateResult<'tcx, T>
pub fn regions(
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, Region<'tcx>>[src]
&mut self,
a: Region<'tcx>,
b: Region<'tcx>
) -> RelateResult<'tcx, Region<'tcx>>
pub fn tys(&mut self, a: Ty<'tcx>, b: Ty<'tcx>) -> RelateResult<'tcx, Ty<'tcx>>[src]
pub fn consts(
&mut self,
a: &'tcx Const<'tcx>,
b: &'tcx Const<'tcx>
) -> RelateResult<'tcx, &'tcx Const<'tcx>>[src]
&mut self,
a: &'tcx Const<'tcx>,
b: &'tcx Const<'tcx>
) -> RelateResult<'tcx, &'tcx Const<'tcx>>
pub fn binders<T>(
&mut self,
a: Binder<T>,
b: Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'tcx>, [src]
&mut self,
a: Binder<T>,
b: Binder<T>
) -> RelateResult<'tcx, Binder<T>> where
T: Relate<'tcx>,