Struct rustc::ty::AdtDef [] [src]

pub struct AdtDef {
    pub did: DefId,
    pub variants: Vec<VariantDef>,
    pub repr: ReprOptions,
    // some fields omitted
}
🔬 This is a nightly-only experimental API. (rustc_private)

The definition of an abstract data type - a struct or enum.

These are all interned (by intern_adt_def) into the adt_defs table.

Fields

🔬 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)

Methods

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

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

Calculate the forest of DefIds from which this adt is visibly uninhabited.

impl<'a, 'gcx, 'tcx> AdtDef
[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)

Returns the kind of the ADT - Struct or Enum.

🔬 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)

Returns whether this is a dtorck type. If this returns true, this type being safe for destruction requires it to be alive; Otherwise, only the contents are required to be.

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

Returns whether this type is #[fundamental] for the purposes of coherence checking.

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

Returns true if this is PhantomData.

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

Returns true if this is Box.

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

Returns whether this type has a destructor.

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

Asserts this is a struct and returns the struct's unique variant.

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

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

Returns an iterator over all fields contained by this ADT.

🔬 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)

Returns a simpler type such that Self: Sized if and only if that type is Sized, or TyErr if this type is recursive.

HACK: instead of returning a list of types, this function can return a tuple. In that case, the result is Sized only if all elements of the tuple are Sized.

This is generally the struct_tail if this is a struct, or a tuple of them if this is an enum.

Oddly enough, checking that the sized-constraint is Sized is actually more expressive than checking all members: the Sized trait is inductive, so an associated type that references Self would prevent its containing ADT from being Sized.

Due to normalization being eager, this applies even if the associated type is behind a pointer, e.g. issue #31299.

Trait Implementations

impl PartialEq for AdtDef
[src]

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

This method tests for !=.

impl Eq for AdtDef
[src]

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

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

deprecated in favor of rustc-serialize on crates.io

Defaults to returning an error (see SpecializationError).

impl<'tcx> UseSpecializedDecodable for &'tcx AdtDef
[src]

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

deprecated in favor of rustc-serialize on crates.io

Defaults to returning an error (see SpecializationError).

impl Debug for AdtDef
[src]

Formats the value using the given formatter.