Struct rustc::middle::infer::combine::CombineFieldsUnstable [-] [+] [src]

pub struct CombineFields<'a, 'tcx> {
    pub infcx: &'a InferCtxt<'a, 'tcx>,
    pub a_is_expected: bool,
    pub trace: TypeTrace<'tcx>,
}

Fields

infcx
a_is_expected
trace

Methods

impl<'a, 'tcx> CombineFields<'a, 'tcx>

fn tcx(&self) -> &'a ctxt<'tcx>

fn switch_expected(&self) -> CombineFields<'a, 'tcx>

fn equate(&self) -> Equate<'a, 'tcx>

fn bivariate(&self) -> Bivariate<'a, 'tcx>

fn sub(&self) -> Sub<'a, 'tcx>

fn lub(&self) -> Lub<'a, 'tcx>

fn glb(&self) -> Glb<'a, 'tcx>

fn instantiate(&self, a_ty: Ty<'tcx>, dir: RelationDir, b_vid: TyVid) -> RelateResult<'tcx, ()>

Trait Implementations

impl<'a, 'tcx> HigherRankedRelations<'a, 'tcx> for CombineFields<'a, 'tcx>

fn higher_ranked_sub<T>(&self, a: &Binder<T>, b: &Binder<T>) -> RelateResult<'tcx, Binder<T>> where T: Relate<'a, 'tcx>

fn higher_ranked_lub<T>(&self, a: &Binder<T>, b: &Binder<T>) -> RelateResult<'tcx, Binder<T>> where T: Relate<'a, 'tcx>

fn higher_ranked_glb<T>(&self, a: &Binder<T>, b: &Binder<T>) -> RelateResult<'tcx, Binder<T>> where T: Relate<'a, 'tcx>

Derived Implementations

impl<'a, 'tcx> Clone for CombineFields<'a, 'tcx>

fn clone(&self) -> CombineFields<'a, 'tcx>

fn clone_from(&mut self, source: &Self)