Struct rustc_infer::traits::ImplSourceUserDefinedData
source · pub struct ImplSourceUserDefinedData<'tcx, N> {
pub impl_def_id: DefId,
pub substs: &'tcx List<GenericArg<'tcx>>,
pub nested: Vec<N, Global>,
}
Expand description
Identifies a particular impl in the source, along with a set of
substitutions from the impl’s type/lifetime parameters. The
nested
vector corresponds to the nested obligations attached to
the impl’s type parameters.
The type parameter N
indicates the type used for “nested
obligations” that are required by the impl. During type-check, this
is Obligation
, as one might expect. During codegen, however, this
is ()
, because codegen only requires a shallow resolution of an
impl, and nested obligations are satisfied later.
Fields§
§impl_def_id: DefId
§substs: &'tcx List<GenericArg<'tcx>>
§nested: Vec<N, Global>
Auto Trait Implementations§
impl<'tcx, N> !RefUnwindSafe for ImplSourceUserDefinedData<'tcx, N>
impl<'tcx, N> !Send for ImplSourceUserDefinedData<'tcx, N>
impl<'tcx, N> !Sync for ImplSourceUserDefinedData<'tcx, N>
impl<'tcx, N> Unpin for ImplSourceUserDefinedData<'tcx, N>where
N: Unpin,
impl<'tcx, N> !UnwindSafe for ImplSourceUserDefinedData<'tcx, N>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes