Struct rustc::ty::ExistentialTraitRef [] [src]

pub struct ExistentialTraitRef<'tcx> {
    pub def_id: DefId,
    pub substs: &'tcx Substs<'tcx>,
}
🔬 This is a nightly-only experimental API. (rustc_private)

An existential reference to a trait, where Self is erased. For example, the trait object Trait<'a, 'b, X, Y> is:

exists T. T: Trait<'a, 'b, X, Y>

The substitutions don't include the erased Self, only trait type and lifetime parameters ([X, Y] and ['a, 'b] above).

Fields

🔬 This is a nightly-only experimental API. (rustc_private)
🔬 This is a nightly-only experimental API. (rustc_private)

Methods

impl<'a, 'gcx, 'tcx> ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

impl<'a, 'gcx, 'tcx> ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

Object types don't have a self-type specified. Therefore, when we convert the principal trait-ref into a normal trait-ref, you must give some self-type. A common choice is mk_err() or some skolemized type.

Trait Implementations

impl<'gcx> TransNormalize<'gcx> for ExistentialTraitRef<'gcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

impl<'tcx> Relate<'tcx> for ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

impl<'a, 'tcx> Lift<'tcx> for ExistentialTraitRef<'a>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

impl<'tcx> TypeFoldable<'tcx> for ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

Indicates whether this value references only 'global' types/lifetimes that are the same regardless of what fn we are in. This is used for caching. Errs on the side of returning false. Read more

impl<'tcx> Copy for ExistentialTraitRef<'tcx>
[src]

impl<'tcx> Clone for ExistentialTraitRef<'tcx>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'tcx> PartialEq for ExistentialTraitRef<'tcx>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<'tcx> Eq for ExistentialTraitRef<'tcx>
[src]

impl<'tcx> Hash for ExistentialTraitRef<'tcx>
[src]

Feeds this value into the state given, updating the hasher as necessary.

Feeds a slice of this type into the state provided.

impl<'tcx> Encodable for ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

deprecated in favor of rustc-serialize on crates.io

impl<'tcx> Decodable for ExistentialTraitRef<'tcx>
[src]

🔬 This is a nightly-only experimental API. (rustc_private)

deprecated in favor of rustc-serialize on crates.io

impl<'tcx> Debug for ExistentialTraitRef<'tcx>
[src]

Formats the value using the given formatter.