Struct rustc_type_ir::TypeFlags [−][src]
pub struct TypeFlags {
bits: u32,
}
Expand description
Flags that we track on types. These flags are propagated upwards through the type during type construction, so that we can quickly check whether the type has various kinds of types in it without recursing over the type itself.
Fields
bits: u32
Implementations
Does this have Param
?
Does this have ReEarlyBound
?
Does this have ConstKind::Param
?
Does this have Infer
?
Does this have ReVar
?
Does this have ConstKind::Infer
?
Does this have inference variables? Used to determine whether inference is required.
Does this have Placeholder
?
Does this have RePlaceholder
?
Does this have ConstKind::Placeholder
?
true
if there are “names” of regions and so forth
that are local to a particular fn/inferctxt
true
if there are “names” of types and regions and so forth
that are local to a particular fn
Does this have Projection
?
Does this have Opaque
?
Does this have ConstKind::Unevaluated
?
Could this type be normalized further?
Does this have any region that “appears free” in the type?
Basically anything but ReLateBound
and ReErased
.
Does this have any ReLateBound
regions? Used to check
if a global bound is safe to evaluate.
Does this have any ReErased
regions?
Does this value have parameters/placeholders/inference variables which could be
replaced later, in a way that would change the results of impl
specialization?
Note that this flag being set is not a guarantee, as it is also set if there are any anon consts with unknown default substs.
Does this value have InferTy::FreshTy/FreshIntTy/FreshFloatTy
?
Does this value have InferConst::Fresh
?
Does this value have unknown default anon const substs.
For more details refer to… FIXME(@lcnr): ask me for now, still have to write all of this.
Flags which can be influenced by default anon const substs.
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Returns true
if there are flags common to both self
and other
.
Returns true
all of the flags in other
are contained within self
.
Trait Implementations
Disables all flags disabled in the set.
Adds the set of flags.
Toggles the set of flags.
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Disables all flags enabled in the set.
Auto Trait Implementations
impl RefUnwindSafe for TypeFlags
impl UnwindSafe for TypeFlags
Blanket Implementations
Mutably borrows from an owned value. Read more
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: 4 bytes