Enum rustc_middle::ty::fast_reject::SimplifiedTypeGen
source · pub enum SimplifiedTypeGen<D>where
D: Copy + Debug + Eq,{
Show 21 variants
BoolSimplifiedType,
CharSimplifiedType,
IntSimplifiedType(IntTy),
UintSimplifiedType(UintTy),
FloatSimplifiedType(FloatTy),
AdtSimplifiedType(D),
ForeignSimplifiedType(D),
StrSimplifiedType,
ArraySimplifiedType,
SliceSimplifiedType,
RefSimplifiedType(Mutability),
PtrSimplifiedType(Mutability),
NeverSimplifiedType,
TupleSimplifiedType(usize),
MarkerTraitObjectSimplifiedType,
TraitSimplifiedType(D),
ClosureSimplifiedType(D),
GeneratorSimplifiedType(D),
GeneratorWitnessSimplifiedType(usize),
FunctionSimplifiedType(usize),
PlaceholderSimplifiedType,
}Expand description
See simplify_type
Note that we keep this type generic over the type of identifier it uses because we sometimes need to use SimplifiedTypeGen values as stable sorting keys (in which case we use a DefPathHash as id-type) but in the general case the non-stable but fast to construct DefId-version is the better choice.
Variants§
BoolSimplifiedType
CharSimplifiedType
IntSimplifiedType(IntTy)
UintSimplifiedType(UintTy)
FloatSimplifiedType(FloatTy)
AdtSimplifiedType(D)
ForeignSimplifiedType(D)
StrSimplifiedType
ArraySimplifiedType
SliceSimplifiedType
RefSimplifiedType(Mutability)
PtrSimplifiedType(Mutability)
NeverSimplifiedType
TupleSimplifiedType(usize)
MarkerTraitObjectSimplifiedType
A trait object, all of whose components are markers
(e.g., dyn Send + Sync).
TraitSimplifiedType(D)
ClosureSimplifiedType(D)
GeneratorSimplifiedType(D)
GeneratorWitnessSimplifiedType(usize)
FunctionSimplifiedType(usize)
PlaceholderSimplifiedType
Implementations§
Trait Implementations§
source§impl<D> Clone for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Clone,
impl<D> Clone for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Clone,
source§fn clone(&self) -> SimplifiedTypeGen<D>
fn clone(&self) -> SimplifiedTypeGen<D>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<'tcx, D, __D: TyDecoder<I = TyCtxt<'tcx>>> Decodable<__D> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Decodable<__D>,
impl<'tcx, D, __D: TyDecoder<I = TyCtxt<'tcx>>> Decodable<__D> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Decodable<__D>,
source§impl<'tcx, D, __E: TyEncoder<I = TyCtxt<'tcx>>> Encodable<__E> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Encodable<__E>,
impl<'tcx, D, __E: TyEncoder<I = TyCtxt<'tcx>>> Encodable<__E> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Encodable<__E>,
source§impl<'__ctx, D> HashStable<StableHashingContext<'__ctx>> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + HashStable<StableHashingContext<'__ctx>>,
impl<'__ctx, D> HashStable<StableHashingContext<'__ctx>> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + HashStable<StableHashingContext<'__ctx>>,
fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
source§impl ParameterizedOverTcx for SimplifiedTypeGen<DefId>
impl ParameterizedOverTcx for SimplifiedTypeGen<DefId>
type Value<'tcx> = SimplifiedTypeGen<DefId>
source§impl<D> PartialEq<SimplifiedTypeGen<D>> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + PartialEq,
impl<D> PartialEq<SimplifiedTypeGen<D>> for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + PartialEq,
source§fn eq(&self, other: &SimplifiedTypeGen<D>) -> bool
fn eq(&self, other: &SimplifiedTypeGen<D>) -> bool
impl<D> Copy for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Copy,
impl<D> Eq for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq + Eq,
impl<D> StructuralEq for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq,
impl<D> StructuralPartialEq for SimplifiedTypeGen<D>where
D: Copy + Debug + Eq,
Auto Trait Implementations§
impl<D> RefUnwindSafe for SimplifiedTypeGen<D>where
D: RefUnwindSafe,
impl<D> Send for SimplifiedTypeGen<D>where
D: Send,
impl<D> Sync for SimplifiedTypeGen<D>where
D: Sync,
impl<D> Unpin for SimplifiedTypeGen<D>where
D: Unpin,
impl<D> UnwindSafe for SimplifiedTypeGen<D>where
D: UnwindSafe,
Blanket Implementations§
source§impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for Twhere
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut T
fn allocate_from_iter<'a>(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = T>
) -> &'a mut [T] ⓘ
source§impl<Tcx, T> DepNodeParams<Tcx> for Twhere
Tcx: DepContext,
T: for<'a> HashStable<StableHashingContext<'a>> + Debug,
impl<Tcx, T> DepNodeParams<Tcx> for Twhere
Tcx: DepContext,
T: for<'a> HashStable<StableHashingContext<'a>> + Debug,
default fn fingerprint_style() -> FingerprintStyle
source§default fn to_fingerprint(&self, tcx: Tcx) -> Fingerprint
default fn to_fingerprint(&self, tcx: Tcx) -> Fingerprint
This method turns the parameters of a DepNodeConstructor into an opaque
Fingerprint to be used in DepNode.
Not all DepNodeParams support being turned into a Fingerprint (they
don’t need to if the corresponding DepNode is anonymous). Read more
default fn to_debug_str(&self, _: Tcx) -> String
source§default fn recover(
_: Tcx,
_: &DepNode<<Tcx as DepContext>::DepKind>
) -> Option<T>
default fn recover(
_: Tcx,
_: &DepNode<<Tcx as DepContext>::DepKind>
) -> Option<T>
This method tries to recover the query key from the given
DepNode,
something which is needed when forcing DepNodes during red-green
evaluation. The query system will only call this method if
fingerprint_style() is not FingerprintStyle::Opaque.
It is always valid to return None here, in which case incremental
compilation will treat the query as having changed instead of forcing it. Read moresource§impl<T, R> InternIteratorElement<T, R> for T
impl<T, R> InternIteratorElement<T, R> for T
type Output = R
fn intern_with<I, F>(iter: I, f: F) -> <T as InternIteratorElement<T, R>>::Outputwhere
I: Iterator<Item = T>,
F: FnOnce(&[T]) -> R,
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error(tcx: Tcx, _: &[QueryInfo]) -> T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.