Struct rustc_middle::arena::Arena
source · pub struct Arena<'tcx> {Show 62 fields
pub dropless: DroplessArena,
layout: TypedArena<LayoutS>,
fn_abi: TypedArena<FnAbi<'tcx, Ty<'tcx>>>,
adt_def: TypedArena<AdtDefData>,
steal_thir: TypedArena<Steal<Thir<'tcx>>>,
steal_mir: TypedArena<Steal<Body<'tcx>>>,
mir: TypedArena<Body<'tcx>>,
steal_promoted: TypedArena<Steal<IndexVec<Promoted, Body<'tcx>>>>,
promoted: TypedArena<IndexVec<Promoted, Body<'tcx>>>,
closure_debuginfo: TypedArena<IndexVec<FieldIdx, Symbol>>,
typeck_results: TypedArena<TypeckResults<'tcx>>,
borrowck_result: TypedArena<BorrowCheckResult<'tcx>>,
resolver: TypedArena<Steal<(ResolverAstLowering, Lrc<Crate>)>>,
output_filenames: TypedArena<Arc<OutputFilenames>>,
crate_for_resolver: TypedArena<Steal<(Crate, AttrVec)>>,
resolutions: TypedArena<ResolverGlobalCtxt>,
unsafety_check_result: TypedArena<UnsafetyCheckResult>,
code_region: TypedArena<CodeRegion>,
const_allocs: TypedArena<Allocation>,
region_scope_tree: TypedArena<ScopeTree>,
mir_keys: TypedArena<DefIdSet>,
dropck_outlives: TypedArena<Canonical<'tcx, QueryResponse<'tcx, DropckOutlivesResult<'tcx>>>>,
normalize_projection_ty: TypedArena<Canonical<'tcx, QueryResponse<'tcx, NormalizationResult<'tcx>>>>,
implied_outlives_bounds: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Vec<OutlivesBound<'tcx>>>>>,
dtorck_constraint: TypedArena<DropckConstraint<'tcx>>,
candidate_step: TypedArena<CandidateStep<'tcx>>,
autoderef_bad_ty: TypedArena<MethodAutoderefBadTy<'tcx>>,
query_region_constraints: TypedArena<QueryRegionConstraints<'tcx>>,
type_op_subtype: TypedArena<Canonical<'tcx, QueryResponse<'tcx, ()>>>,
type_op_normalize_poly_fn_sig: TypedArena<Canonical<'tcx, QueryResponse<'tcx, PolyFnSig<'tcx>>>>,
type_op_normalize_fn_sig: TypedArena<Canonical<'tcx, QueryResponse<'tcx, FnSig<'tcx>>>>,
type_op_normalize_clause: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Clause<'tcx>>>>,
type_op_normalize_ty: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Ty<'tcx>>>>,
all_traits: TypedArena<Vec<DefId>>,
effective_visibilities: TypedArena<EffectiveVisibilities>,
foreign_module: TypedArena<ForeignModule>,
foreign_modules: TypedArena<Vec<ForeignModule>>,
upvars_mentioned: TypedArena<FxIndexMap<HirId, Upvar>>,
object_safety_violations: TypedArena<ObjectSafetyViolation>,
codegen_unit: TypedArena<CodegenUnit<'tcx>>,
attribute: TypedArena<Attribute>,
name_set: TypedArena<UnordSet<Symbol>>,
ordered_name_set: TypedArena<FxIndexSet<Symbol>>,
hir_id_set: TypedArena<HirIdSet>,
tys: TypedArena<WithCachedTypeInfo<TyKind<'tcx>>>,
predicates: TypedArena<WithCachedTypeInfo<PredicateKind<'tcx>>>,
consts: TypedArena<ConstData<'tcx>>,
asm_template: TypedArena<InlineAsmTemplatePiece>,
used_trait_imports: TypedArena<UnordSet<LocalDefId>>,
registered_tools: TypedArena<RegisteredTools>,
is_late_bound_map: TypedArena<FxIndexSet<ItemLocalId>>,
impl_source: TypedArena<ImplSource<'tcx, ()>>,
dep_kind: TypedArena<DepKindStruct<'tcx>>,
trait_impl_trait_tys: TypedArena<FxHashMap<DefId, EarlyBinder<Ty<'tcx>>>>,
bit_set_u32: TypedArena<BitSet<u32>>,
external_constraints: TypedArena<ExternalConstraintsData<'tcx>>,
predefined_opaques_in_body: TypedArena<PredefinedOpaquesData<'tcx>>,
doc_link_resolutions: TypedArena<DocLinkResMap>,
closure_kind_origin: TypedArena<(Span, Place<'tcx>)>,
stripped_cfg_items: TypedArena<StrippedCfgItem>,
mod_child: TypedArena<ModChild>,
features: TypedArena<Features>,
}
Fields§
§dropless: DroplessArena
§layout: TypedArena<LayoutS>
§fn_abi: TypedArena<FnAbi<'tcx, Ty<'tcx>>>
§adt_def: TypedArena<AdtDefData>
§steal_thir: TypedArena<Steal<Thir<'tcx>>>
§steal_mir: TypedArena<Steal<Body<'tcx>>>
§mir: TypedArena<Body<'tcx>>
§steal_promoted: TypedArena<Steal<IndexVec<Promoted, Body<'tcx>>>>
§promoted: TypedArena<IndexVec<Promoted, Body<'tcx>>>
§closure_debuginfo: TypedArena<IndexVec<FieldIdx, Symbol>>
§typeck_results: TypedArena<TypeckResults<'tcx>>
§borrowck_result: TypedArena<BorrowCheckResult<'tcx>>
§resolver: TypedArena<Steal<(ResolverAstLowering, Lrc<Crate>)>>
§output_filenames: TypedArena<Arc<OutputFilenames>>
§crate_for_resolver: TypedArena<Steal<(Crate, AttrVec)>>
§resolutions: TypedArena<ResolverGlobalCtxt>
§unsafety_check_result: TypedArena<UnsafetyCheckResult>
§code_region: TypedArena<CodeRegion>
§const_allocs: TypedArena<Allocation>
§region_scope_tree: TypedArena<ScopeTree>
§mir_keys: TypedArena<DefIdSet>
§dropck_outlives: TypedArena<Canonical<'tcx, QueryResponse<'tcx, DropckOutlivesResult<'tcx>>>>
§normalize_projection_ty: TypedArena<Canonical<'tcx, QueryResponse<'tcx, NormalizationResult<'tcx>>>>
§implied_outlives_bounds: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Vec<OutlivesBound<'tcx>>>>>
§dtorck_constraint: TypedArena<DropckConstraint<'tcx>>
§candidate_step: TypedArena<CandidateStep<'tcx>>
§autoderef_bad_ty: TypedArena<MethodAutoderefBadTy<'tcx>>
§query_region_constraints: TypedArena<QueryRegionConstraints<'tcx>>
§type_op_subtype: TypedArena<Canonical<'tcx, QueryResponse<'tcx, ()>>>
§type_op_normalize_poly_fn_sig: TypedArena<Canonical<'tcx, QueryResponse<'tcx, PolyFnSig<'tcx>>>>
§type_op_normalize_fn_sig: TypedArena<Canonical<'tcx, QueryResponse<'tcx, FnSig<'tcx>>>>
§type_op_normalize_clause: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Clause<'tcx>>>>
§type_op_normalize_ty: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Ty<'tcx>>>>
§all_traits: TypedArena<Vec<DefId>>
§effective_visibilities: TypedArena<EffectiveVisibilities>
§foreign_module: TypedArena<ForeignModule>
§foreign_modules: TypedArena<Vec<ForeignModule>>
§upvars_mentioned: TypedArena<FxIndexMap<HirId, Upvar>>
§object_safety_violations: TypedArena<ObjectSafetyViolation>
§codegen_unit: TypedArena<CodegenUnit<'tcx>>
§attribute: TypedArena<Attribute>
§name_set: TypedArena<UnordSet<Symbol>>
§ordered_name_set: TypedArena<FxIndexSet<Symbol>>
§hir_id_set: TypedArena<HirIdSet>
§tys: TypedArena<WithCachedTypeInfo<TyKind<'tcx>>>
§predicates: TypedArena<WithCachedTypeInfo<PredicateKind<'tcx>>>
§consts: TypedArena<ConstData<'tcx>>
§asm_template: TypedArena<InlineAsmTemplatePiece>
§used_trait_imports: TypedArena<UnordSet<LocalDefId>>
§registered_tools: TypedArena<RegisteredTools>
§is_late_bound_map: TypedArena<FxIndexSet<ItemLocalId>>
§impl_source: TypedArena<ImplSource<'tcx, ()>>
§dep_kind: TypedArena<DepKindStruct<'tcx>>
§trait_impl_trait_tys: TypedArena<FxHashMap<DefId, EarlyBinder<Ty<'tcx>>>>
§bit_set_u32: TypedArena<BitSet<u32>>
§external_constraints: TypedArena<ExternalConstraintsData<'tcx>>
§predefined_opaques_in_body: TypedArena<PredefinedOpaquesData<'tcx>>
§doc_link_resolutions: TypedArena<DocLinkResMap>
§closure_kind_origin: TypedArena<(Span, Place<'tcx>)>
§stripped_cfg_items: TypedArena<StrippedCfgItem>
§mod_child: TypedArena<ModChild>
§features: TypedArena<Features>
Implementations§
source§impl<'tcx> Arena<'tcx>
impl<'tcx> Arena<'tcx>
pub fn alloc<T: ArenaAllocatable<'tcx, C>, C>(&self, value: T) -> &mut T
pub fn alloc_slice<T: Copy>(&self, value: &[T]) -> &mut [T]
pub fn alloc_from_iter<T: ArenaAllocatable<'tcx, C>, C>( &self, iter: impl IntoIterator<Item = T> ) -> &mut [T]
Trait Implementations§
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for Arena<'tcx>
impl<'tcx> !Send for Arena<'tcx>
impl<'tcx> !Sync for Arena<'tcx>
impl<'tcx> Unpin for Arena<'tcx>
impl<'tcx> !UnwindSafe for Arena<'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
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, cycle: &[QueryInfo], _guar: ErrorGuaranteed ) -> T
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: 2976 bytes