[][src]Struct rustc::ty::GeneratorInteriorTypeCause

pub struct GeneratorInteriorTypeCause<'tcx> {
    pub ty: Ty<'tcx>,
    pub span: Span,
    pub scope_span: Option<Span>,
    pub expr: Option<HirId>,
}
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Whenever a value may be live across a generator yield, the type of that value winds up in the GeneratorInteriorTypeCause struct. This struct adds additional information about such captured types that can be useful for diagnostics. In particular, it stores the span that caused a given type to be recorded, along with the scope that enclosed the value (which can be used to find the await that the value is live across).

For example:

This example is not tested
async move {
    let x: T = ...;
    foo.await
    ...
}

Here, we would store the type T, the span of the value x, and the "scope-span" for the scope that contains x.

Fields

ty: Ty<'tcx>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Type of the captured binding.

span: Span
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Span of the binding that was captured.

scope_span: Option<Span>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Span of the scope of the captured binding.

expr: Option<HirId>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Expr which the type evaluated from.

Trait Implementations

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

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

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

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

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

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

impl<'tcx, '__ctx> HashStable<StableHashingContext<'__ctx>> for GeneratorInteriorTypeCause<'tcx>[src]

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

impl<'tcx> StructuralEq for GeneratorInteriorTypeCause<'tcx>[src]

impl<'tcx> StructuralPartialEq for GeneratorInteriorTypeCause<'tcx>[src]

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for GeneratorInteriorTypeCause<'tcx>

impl<'tcx> !Send for GeneratorInteriorTypeCause<'tcx>

impl<'tcx> !Sync for GeneratorInteriorTypeCause<'tcx>

impl<'tcx> Unpin for GeneratorInteriorTypeCause<'tcx>

impl<'tcx> !UnwindSafe for GeneratorInteriorTypeCause<'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Decodable for T where
    T: UseSpecializedDecodable
[src]

impl<T> Encodable for T where
    T: UseSpecializedEncodable + ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> MaybeResult<T> for T[src]

type Error = !

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<E> SpecializationError for E[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> WithConstness for T[src]