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)