Struct rustc_middle::arena::Arena
source · pub struct Arena<'tcx> {Show 49 fields
pub dropless: DroplessArena,
layout: TypedArena<LayoutS<VariantIdx>>,
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>>>,
typeck_results: TypedArena<TypeckResults<'tcx>>,
borrowck_result: TypedArena<BorrowCheckResult<'tcx>>,
resolver: TypedArena<Steal<ResolverAstLowering>>,
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_predicate: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Predicate<'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<FxHashSet<Symbol>>,
hir_id_set: TypedArena<HirIdSet>,
tys: TypedArena<WithCachedTypeInfo<TyKind<'tcx>>>,
predicates: TypedArena<WithCachedTypeInfo<PredicateKind<'tcx>>>,
consts: TypedArena<ConstS<'tcx>>,
asm_template: TypedArena<InlineAsmTemplatePiece>,
used_trait_imports: TypedArena<UnordSet<LocalDefId>>,
is_late_bound_map: TypedArena<FxIndexSet<LocalDefId>>,
impl_source: TypedArena<ImplSource<'tcx, ()>>,
dep_kind: TypedArena<DepKindStruct<'tcx>>,
trait_impl_trait_tys: TypedArena<FxHashMap<DefId, Ty<'tcx>>>,
bit_set_u32: TypedArena<BitSet<u32>>,
}
Fields§
§dropless: DroplessArena
§layout: TypedArena<LayoutS<VariantIdx>>
§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>>>
§typeck_results: TypedArena<TypeckResults<'tcx>>
§borrowck_result: TypedArena<BorrowCheckResult<'tcx>>
§resolver: TypedArena<Steal<ResolverAstLowering>>
§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_predicate: TypedArena<Canonical<'tcx, QueryResponse<'tcx, Predicate<'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<FxHashSet<Symbol>>
§hir_id_set: TypedArena<HirIdSet>
§tys: TypedArena<WithCachedTypeInfo<TyKind<'tcx>>>
§predicates: TypedArena<WithCachedTypeInfo<PredicateKind<'tcx>>>
§consts: TypedArena<ConstS<'tcx>>
§asm_template: TypedArena<InlineAsmTemplatePiece>
§used_trait_imports: TypedArena<UnordSet<LocalDefId>>
§is_late_bound_map: TypedArena<FxIndexSet<LocalDefId>>
§impl_source: TypedArena<ImplSource<'tcx, ()>>
§dep_kind: TypedArena<DepKindStruct<'tcx>>
§trait_impl_trait_tys: TypedArena<FxHashMap<DefId, Ty<'tcx>>>
§bit_set_u32: TypedArena<BitSet<u32>>
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<'a, T: ArenaAllocatable<'tcx, C>, C>(
&'a self,
iter: impl IntoIterator<Item = T>
) -> &'a 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, 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: 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: 2352 bytes