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
)