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

pub struct Binder<T>(pub T);

Binder is a binder for higher-ranked lifetimes. It is part of the compiler's representation for things like for<'a> Fn(&'a int) (which would be represented by the type PolyTraitRef == Binder<TraitRef>). Note that when we skolemize, instantiate, erase, or otherwise "discharge" these bound reons, we change the type from Binder<T> to just T (see e.g. liberate_late_bound_regions).

Trait Implementations

impl<'tcx, T: RegionEscape> RegionEscape for Binder<T>

fn has_regions_escaping_depth(&self, depth: u32) -> bool

fn has_escaping_regions(&self) -> bool

impl<T> HasProjectionTypes for Binder<T> where T: HasProjectionTypes

fn has_projection_types(&self) -> bool

impl<T: ReferencesError> ReferencesError for Binder<T>

fn references_error(&self) -> bool

impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Binder<T>

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

impl<'tcx, T> UserString<'tcx> for Binder<T> where T: UserString<'tcx> + TypeFoldable<'tcx>

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

impl<'tcx, T: Repr<'tcx>> Repr<'tcx> for Binder<T>

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

Derived Implementations

impl<T: Show> Show for Binder<T>

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

impl<__S: Writer, T: Hash<__S>> Hash<__S> for Binder<T>

fn hash(&self, __arg_0: &mut __S)

impl<T: Eq> Eq for Binder<T>

fn assert_receiver_is_total_eq(&self)

impl<T: PartialEq> PartialEq for Binder<T>

fn eq(&self, __arg_0: &Binder<T>) -> bool

fn ne(&self, __arg_0: &Binder<T>) -> bool

impl<T: Clone> Clone for Binder<T>

fn clone(&self) -> Binder<T>

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