Struct rustc::middle::ty::ExistentialBoundsUnstable [-] [+] [src]

pub struct ExistentialBounds<'tcx> {
    pub region_bound: Region,
    pub builtin_bounds: BuiltinBounds,
    pub projection_bounds: Vec<PolyProjectionPredicate<'tcx>>,
}

Bounds suitable for an existentially quantified type parameter such as those that appear in object types or closure types. The major difference between this case and ParamBounds is that general purpose trait bounds are omitted and there must be exactly one region.

Fields

region_bound
builtin_bounds
projection_bounds

Trait Implementations

impl<'tcx> TypeFoldable<'tcx> for ExistentialBounds<'tcx>

fn fold_with<F: TypeFolder<'tcx>>(&self, folder: &mut F) -> ExistentialBounds<'tcx>

impl<'a, 'tcx> Relate<'a, 'tcx> for ExistentialBounds<'tcx>

fn relate<R>(relation: &mut R, a: &ExistentialBounds<'tcx>, b: &ExistentialBounds<'tcx>) -> RelateResult<'tcx, ExistentialBounds<'tcx>> where R: TypeRelation<'a, 'tcx>

impl<'tcx> Repr<'tcx> for ExistentialBounds<'tcx>

fn repr(&self, tcx: &ctxt<'tcx>) -> String

Derived Implementations

impl<'tcx> Debug for ExistentialBounds<'tcx>

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

impl<'tcx> Clone for ExistentialBounds<'tcx>

fn clone(&self) -> ExistentialBounds<'tcx>

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

impl<'tcx> Hash for ExistentialBounds<'tcx>

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher

impl<'tcx> Eq for ExistentialBounds<'tcx>

impl<'tcx> PartialEq for ExistentialBounds<'tcx>

fn eq(&self, __arg_0: &ExistentialBounds<'tcx>) -> bool

fn ne(&self, __arg_0: &ExistentialBounds<'tcx>) -> bool