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

pub struct ExistentialBounds<'tcx> {
    pub region_bound: Region,
    pub builtin_bounds: EnumSet<BuiltinBound>,
    pub projection_bounds: Vec<Binder<ProjectionPredicate<'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>(&self, folder: &mut F) -> ExistentialBounds<'tcx> where F: TypeFolder<'tcx>

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

fn relate<R>(relation: &mut R, a: &ExistentialBounds<'tcx>, b: &ExistentialBounds<'tcx>) -> Result<ExistentialBounds<'tcx>, type_err<'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<(), Error>

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>(&self, __arg_0: &mut __H) where __H: Hasher

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

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

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

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