Struct rustc_typeck::middle::infer::glb::GlbExperimental [-]  [+] [src]

pub struct Glb<'f, 'tcx> {
    // some fields omitted
}

"Greatest lower bound" (common subtype)

Trait Implementations

impl<'f, 'tcx> Combine<'tcx> for Glb<'f, 'tcx>

fn infcx(&'a self) -> &'a InferCtxt<'a, 'tcx>

fn tag(&self) -> String

fn a_is_expected(&self) -> bool

fn trace(&self) -> TypeTrace<'tcx>

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

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

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

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

fn mts(&self, a: &mt<'tcx>, b: &mt<'tcx>) -> Result<mt<'tcx>, type_err<'tcx>>

fn contratys(&self, a: &'tcx TyS<'tcx>, b: &'tcx TyS<'tcx>) -> Result<&'tcx TyS<'tcx>, type_err<'tcx>>

fn unsafeties(&self, a: Unsafety, b: Unsafety) -> Result<Unsafety, type_err<'tcx>>

fn oncenesses(&self, a: Onceness, b: Onceness) -> Result<Onceness, type_err<'tcx>>

fn builtin_bounds(&self, a: EnumSet<BuiltinBound>, b: EnumSet<BuiltinBound>) -> Result<EnumSet<BuiltinBound>, type_err<'tcx>>

fn regions(&self, a: Region, b: Region) -> Result<Region, type_err<'tcx>>

fn contraregions(&self, a: Region, b: Region) -> Result<Region, type_err<'tcx>>

fn tys(&self, a: &'tcx TyS<'tcx>, b: &'tcx TyS<'tcx>) -> Result<&'tcx TyS<'tcx>, type_err<'tcx>>

fn binders<T>(&self, a: &Binder<T>, b: &Binder<T>) -> Result<Binder<T>, type_err<'tcx>>

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

fn tps(&self, ParamSpace, &[&'tcx TyS<'tcx>], &[&'tcx TyS<'tcx>]) -> Result<Vec<&'tcx TyS<'tcx>>, type_err<'tcx>>

fn substs(&self, DefId, &Substs<'tcx>, &Substs<'tcx>) -> Result<Substs<'tcx>, type_err<'tcx>>

fn substs_variances(&self, Option<&ItemVariances>, &Substs<'tcx>, &Substs<'tcx>) -> Result<Substs<'tcx>, type_err<'tcx>>

fn bare_fn_tys(&self, &BareFnTy<'tcx>, &BareFnTy<'tcx>) -> Result<BareFnTy<'tcx>, type_err<'tcx>>

fn closure_tys(&self, &ClosureTy<'tcx>, &ClosureTy<'tcx>) -> Result<ClosureTy<'tcx>, type_err<'tcx>>

fn fn_sigs(&self, &FnSig<'tcx>, &FnSig<'tcx>) -> Result<FnSig<'tcx>, type_err<'tcx>>

fn args(&self, &'tcx TyS<'tcx>, &'tcx TyS<'tcx>) -> Result<&'tcx TyS<'tcx>, type_err<'tcx>>

fn abi(&self, Abi, Abi) -> Result<Abi, type_err<'tcx>>

fn projection_tys(&self, &ProjectionTy<'tcx>, &ProjectionTy<'tcx>) -> Result<ProjectionTy<'tcx>, type_err<'tcx>>

fn projection_predicates(&self, &ProjectionPredicate<'tcx>, &ProjectionPredicate<'tcx>) -> Result<ProjectionPredicate<'tcx>, type_err<'tcx>>

fn projection_bounds(&self, &Vec<Binder<ProjectionPredicate<'tcx>>>, &Vec<Binder<ProjectionPredicate<'tcx>>>) -> Result<Vec<Binder<ProjectionPredicate<'tcx>>>, type_err<'tcx>>

fn existential_bounds(&self, &ExistentialBounds<'tcx>, &ExistentialBounds<'tcx>) -> Result<ExistentialBounds<'tcx>, type_err<'tcx>>

fn trait_stores(&self, terr_vstore_kind, TraitStore, TraitStore) -> Result<TraitStore, type_err<'tcx>>

fn trait_refs(&self, &TraitRef<'tcx>, &TraitRef<'tcx>) -> Result<TraitRef<'tcx>, type_err<'tcx>>

impl<'a, 'tcx> LatticeDir<'tcx> for Glb<'a, 'tcx>

fn relate_bound(&self, v: &'tcx TyS<'tcx>, a: &'tcx TyS<'tcx>, b: &'tcx TyS<'tcx>) -> Result<(), type_err<'tcx>>