rustc_middle::arena

Trait ArenaAllocatable

Source
pub trait ArenaAllocatable<'tcx, C = IsNotCopy>: Sized {
    // Required methods
    fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self;
    fn allocate_from_iter(
        arena: &'tcx Arena<'tcx>,
        iter: impl IntoIterator<Item = Self>,
    ) -> &'tcx mut [Self];
}

Required Methods§

Source

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'tcx> ArenaAllocatable<'tcx> for InlineAsmTemplatePiece

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for LayoutData<FieldIdx, VariantIdx>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for StrippedCfgItem

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Steal<(Crate, AttrVec)>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Steal<(ResolverAstLowering, Lrc<Crate>)>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Steal<IndexVec<Promoted, Body<'tcx>>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Steal<Body<'tcx>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Steal<Thir<'tcx>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for UnordMap<DefId, EarlyBinder<'tcx, Ty<'tcx>>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for UnordSet<LocalDefId>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for UnordSet<Symbol>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Features

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Attribute

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for OwnerNodes<'tcx>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for IndexVec<Promoted, Body<'tcx>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for FnAbi<'tcx, Ty<'tcx>>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for FxIndexMap<HirId, Upvar>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for FxIndexSet<ItemLocalId>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for FxIndexSet<Symbol>

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for DocLinkResMap

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Source§

impl<'tcx> ArenaAllocatable<'tcx> for DefIdSet

Source§

fn allocate_on(self, arena: &'tcx Arena<'tcx>) -> &'tcx mut Self

Source§

fn allocate_from_iter( arena: &'tcx Arena<'tcx>, iter: impl IntoIterator<Item = Self>, ) -> &'tcx mut [Self]

Implementors§

Source§

impl<'tcx> ArenaAllocatable<'tcx> for DynCompatibilityViolation

Source§

impl<'tcx> ArenaAllocatable<'tcx> for ImplSource<'tcx, ()>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for PatternKind<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for QueryRegionConstraints<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for ModChild

Source§

impl<'tcx> ArenaAllocatable<'tcx> for EffectiveVisibilities

Source§

impl<'tcx> ArenaAllocatable<'tcx> for ScopeTree

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Allocation

Source§

impl<'tcx> ArenaAllocatable<'tcx> for CodegenUnit<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for BorrowCheckResult<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Body<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for CandidateStep<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for DropckConstraint<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for MethodAutoderefBadTy<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Graph

Source§

impl<'tcx> ArenaAllocatable<'tcx> for AdtDefData

Source§

impl<'tcx> ArenaAllocatable<'tcx> for ExternalConstraintsData<TyCtxt<'tcx>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for PredefinedOpaquesData<TyCtxt<'tcx>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for CrateInherentImpls

Source§

impl<'tcx> ArenaAllocatable<'tcx> for ResolverGlobalCtxt

Source§

impl<'tcx> ArenaAllocatable<'tcx> for TypeckResults<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for DepKindStruct<'tcx>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, ()>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, DropckOutlivesResult<'tcx>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, NormalizationResult<'tcx>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, Clause<'tcx>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, Ty<'tcx>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, Vec<OutlivesBound<'tcx>>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, FnSig<'tcx>>>

Source§

impl<'tcx> ArenaAllocatable<'tcx> for Canonical<'tcx, QueryResponse<'tcx, PolyFnSig<'tcx>>>

Source§

impl<'tcx, T: Copy> ArenaAllocatable<'tcx, IsCopy> for T