Struct rustc::ty::ProjectionPredicate [] [src]

pub struct ProjectionPredicate<'tcx> {
    pub projection_ty: ProjectionTy<'tcx>,
    pub ty: Ty<'tcx>,
}
🔬 This is a nightly-only experimental API. (rustc_private)

This kind of predicate has no direct correspondent in the syntax, but it roughly corresponds to the syntactic forms:

  1. T : TraitRef<..., Item=Type>
  2. <T as TraitRef<...>>::Item == Type (NYI)

In particular, form #1 is "desugared" to the combination of a normal trait predicate (T : TraitRef<...>) and one of these predicates. Form #2 is a broader form in that it also permits equality between arbitrary types. Processing an instance of Form

2 eventually yields one of these ProjectionPredicate

instances to normalize the LHS.

Fields

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

Trait Implementations

impl<'a, 'tcx> Lift<'tcx> for ProjectionPredicate<'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 ProjectionPredicate<'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 ProjectionPredicate<'tcx>
[src]

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'tcx> PartialEq for ProjectionPredicate<'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 ProjectionPredicate<'tcx>
[src]

impl<'tcx> Hash for ProjectionPredicate<'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 ProjectionPredicate<'tcx>
[src]

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

deprecated in favor of rustc-serialize on crates.io

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

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

deprecated in favor of rustc-serialize on crates.io

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

Formats the value using the given formatter.

impl<'tcx> Display for ProjectionPredicate<'tcx>
[src]

Formats the value using the given formatter. Read more