Enum rustc::ty::wf::ImpliedBound [−] [src]

pub enum ImpliedBound<'tcx> {
    RegionSubRegion(Region, Region),
    RegionSubParam(Region, ParamTy),
    RegionSubProjection(Region, ProjectionTy<'tcx>),
}
Unstable (rustc_private)

Implied bounds are region relationships that we deduce automatically. The idea is that (e.g.) a caller must check that a function's argument types are well-formed immediately before calling that fn, and hence the callee can assume that its argument types are well-formed. This may imply certain relationships between generic parameters. For example:

fn foo<'a,T>(x: &'a T)

can only be called with a 'a and T such that &'a T is WF. For &'a T to be WF, T: 'a must hold. So we can assume T: 'a.

Variants

RegionSubRegion(Region, Region)
Unstable (rustc_private)
RegionSubParam(Region, ParamTy)
Unstable (rustc_private)
RegionSubProjection(Region, ProjectionTy<'tcx>)
Unstable (rustc_private)

Trait Implementations

Derived Implementations

impl<'tcx> Debug for ImpliedBound<'tcx>
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.