[−][src]Struct rustc_metadata::rmeta::encoder::EncodeContext

pub(in rmeta) struct EncodeContext<'a, 'tcx> {
    opaque: Encoder,
    tcx: TyCtxt<'tcx>,
    feat: &'tcx Features,
    tables: TableBuilders<'tcx>,
    lazy_state: LazyState,
    type_shorthands: FxHashMap<Ty<'tcx>, usize>,
    predicate_shorthands: FxHashMap<Predicate<'tcx>, usize>,
    interpret_allocs: FxIndexSet<AllocId>,
    source_file_cache: (Lrc<SourceFile>, usize),
    required_source_files: Option<GrowableBitSet<usize>>,
    is_proc_macro: bool,
    hygiene_ctxt: &'a HygieneEncodeContext,
}

Fields

opaque: Encodertcx: TyCtxt<'tcx>feat: &'tcx Featurestables: TableBuilders<'tcx>lazy_state: LazyStatetype_shorthands: FxHashMap<Ty<'tcx>, usize>predicate_shorthands: FxHashMap<Predicate<'tcx>, usize>interpret_allocs: FxIndexSet<AllocId>source_file_cache: (Lrc<SourceFile>, usize)required_source_files: Option<GrowableBitSet<usize>>is_proc_macro: boolhygiene_ctxt: &'a HygieneEncodeContext

Implementations

impl<'a, 'tcx> EncodeContext<'a, 'tcx>[src]

pub(in rmeta::encoder) fn emit_lazy_distance<T: ?Sized + LazyMeta>(
    &mut self,
    lazy: Lazy<T>
) -> Result<(), Self::Error>
[src]

pub(in rmeta::encoder) fn lazy<T: ?Sized + LazyMeta>(
    &mut self,
    value: impl EncodeContentsForLazy<'a, 'tcx, T>
) -> Lazy<T>
[src]

pub(in rmeta::encoder) fn encode_info_for_items(
    &mut self
)
[src]

pub(in rmeta::encoder) fn encode_def_path_table(
    &mut self
)
[src]

pub(in rmeta::encoder) fn encode_source_map(
    &mut self
) -> Lazy<[SourceFile]>
[src]

pub(in rmeta::encoder) fn encode_crate_root(
    &mut self
) -> Lazy<CrateRoot<'tcx>>
[src]

impl<'a, 'tcx> EncodeContext<'a, 'tcx>[src]

pub(in rmeta::encoder) fn encode_variances_of(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_item_type(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_enum_variant_info(
    &mut self,
    def: &AdtDef,
    index: VariantIdx
)
[src]

pub(in rmeta::encoder) fn encode_enum_variant_ctor(
    &mut self,
    def: &AdtDef,
    index: VariantIdx
)
[src]

pub(in rmeta::encoder) fn encode_info_for_mod(
    &mut self,
    id: HirId,
    md: &Mod<'_>,
    attrs: &[Attribute]
)
[src]

pub(in rmeta::encoder) fn encode_field(
    &mut self,
    adt_def: &AdtDef,
    variant_index: VariantIdx,
    field_index: usize
)
[src]

pub(in rmeta::encoder) fn encode_struct_ctor(
    &mut self,
    adt_def: &AdtDef,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_generics(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_explicit_predicates(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_inferred_outlives(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_super_predicates(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_explicit_item_bounds(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_info_for_trait_item(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn metadata_output_only(
    &self
) -> bool
[src]

pub(in rmeta::encoder) fn encode_info_for_impl_item(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_fn_param_names_for_body(
    &mut self,
    body_id: BodyId
) -> Lazy<[Ident]>
[src]

pub(in rmeta::encoder) fn encode_fn_param_names(
    &mut self,
    param_names: &[Ident]
) -> Lazy<[Ident]>
[src]

pub(in rmeta::encoder) fn encode_optimized_mir(
    &mut self,
    def_id: LocalDefId
)
[src]

pub(in rmeta::encoder) fn encode_promoted_mir(
    &mut self,
    def_id: LocalDefId
)
[src]

pub(in rmeta::encoder) fn encode_inherent_implementations(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_stability(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_const_stability(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_deprecation(
    &mut self,
    def_id: DefId
)
[src]

pub(in rmeta::encoder) fn encode_rendered_const_for_body(
    &mut self,
    body_id: BodyId
) -> Lazy<RenderedConst>
[src]

pub(in rmeta::encoder) fn encode_info_for_item(
    &mut self,
    def_id: DefId,
    item: &'tcx Item<'tcx>
)
[src]

pub(in rmeta::encoder) fn encode_info_for_macro_def(
    &mut self,
    macro_def: &MacroDef<'_>
)
[src]

Serialize the text of exported macros

pub(in rmeta::encoder) fn encode_info_for_generic_param(
    &mut self,
    def_id: DefId,
    kind: EntryKind,
    encode_type: bool
)
[src]

pub(in rmeta::encoder) fn encode_info_for_closure(
    &mut self,
    def_id: LocalDefId
)
[src]

pub(in rmeta::encoder) fn encode_info_for_anon_const(
    &mut self,
    def_id: LocalDefId
)
[src]

pub(in rmeta::encoder) fn encode_native_libraries(
    &mut self
) -> Lazy<[NativeLib]>
[src]

pub(in rmeta::encoder) fn encode_foreign_modules(
    &mut self
) -> Lazy<[ForeignModule]>
[src]

pub(in rmeta::encoder) fn encode_hygiene(
    &mut self
) -> (Lazy<Table<u32, Lazy<SyntaxContextData>>>, Lazy<Table<u32, Lazy<ExpnData>>>)
[src]

pub(in rmeta::encoder) fn encode_proc_macros(
    &mut self
) -> Option<ProcMacroData>
[src]

pub(in rmeta::encoder) fn encode_crate_deps(
    &mut self
) -> Lazy<[CrateDep]>
[src]

pub(in rmeta::encoder) fn encode_lib_features(
    &mut self
) -> Lazy<[(Symbol, Option<Symbol>)]>
[src]

pub(in rmeta::encoder) fn encode_diagnostic_items(
    &mut self
) -> Lazy<[(Symbol, DefIndex)]>
[src]

pub(in rmeta::encoder) fn encode_lang_items(
    &mut self
) -> Lazy<[(DefIndex, usize)]>
[src]

pub(in rmeta::encoder) fn encode_lang_items_missing(
    &mut self
) -> Lazy<[LangItem]>
[src]

pub(in rmeta::encoder) fn encode_impls(
    &mut self
) -> Lazy<[TraitImpls]>
[src]

Encodes an index, mapping each trait to its (local) implementations.

pub(in rmeta::encoder) fn encode_exported_symbols(
    &mut self,
    exported_symbols: &[(ExportedSymbol<'tcx>, SymbolExportLevel)]
) -> Lazy<[(ExportedSymbol<'tcx>, SymbolExportLevel)]>
[src]

pub(in rmeta::encoder) fn encode_dylib_dependency_formats(
    &mut self
) -> Lazy<[Option<LinkagePreference>]>
[src]

pub(in rmeta::encoder) fn encode_info_for_foreign_item(
    &mut self,
    def_id: DefId,
    nitem: &ForeignItem<'_>
)
[src]

impl<'a, 'tcx> EncodeContext<'a, 'tcx>[src]

pub(in rmeta::encoder) fn encode_fields(
    &mut self,
    adt_def: &AdtDef
)
[src]

pub(in rmeta::encoder) fn encode_info_for_generics(
    &mut self,
    generics: &Generics<'tcx>
)
[src]

pub(in rmeta::encoder) fn encode_info_for_expr(
    &mut self,
    expr: &Expr<'_>
)
[src]

pub(in rmeta::encoder) fn encode_ident_span(
    &mut self,
    def_id: DefId,
    ident: Ident
)
[src]

pub(in rmeta::encoder) fn encode_addl_info_for_item(
    &mut self,
    item: &Item<'_>
)
[src]

In some cases, along with the item itself, we also encode some sub-items. Usually we want some info from the item so it's easier to do that here then to wait until we would encounter normally in the visitor walk.

Trait Implementations

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for ProcMacroData[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for CrateRoot<'tcx>[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for TraitImpls[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for LazyTables<'tcx>[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for EntryKind[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for ModData[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for FnData[src]

impl<'tcx, '__a> Encodable<EncodeContext<'__a, 'tcx>> for AssocFnData[src]

impl<'a, 'tcx, T: Encodable<EncodeContext<'a, 'tcx>>> Encodable<EncodeContext<'a, 'tcx>> for Lazy<T>[src]

impl<'a, 'tcx, T: Encodable<EncodeContext<'a, 'tcx>>> Encodable<EncodeContext<'a, 'tcx>> for Lazy<[T]>[src]

impl<'a, 'tcx, I: Idx, T: Encodable<EncodeContext<'a, 'tcx>>> Encodable<EncodeContext<'a, 'tcx>> for Lazy<Table<I, T>> where
    Option<T>: FixedSizeEncoding, 
[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for CrateNum[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for DefIndex[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for SyntaxContext[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for ExpnId[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for Span[src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for &'tcx [Node<'tcx>][src]

impl<'a, 'tcx> Encodable<EncodeContext<'a, 'tcx>> for &'tcx [(Predicate<'tcx>, Span)][src]

impl<'a, 'tcx> Encoder for EncodeContext<'a, 'tcx>[src]

type Error = <Encoder as Encoder>::Error

impl<'a, 'tcx> FingerprintEncoder for EncodeContext<'a, 'tcx>[src]

impl<'a, 'tcx> TyEncoder<'tcx> for EncodeContext<'a, 'tcx>[src]

impl<'tcx, 'a> Visitor<'tcx> for EncodeContext<'a, 'tcx>[src]

type Map = Map<'tcx>

Auto Trait Implementations

impl<'a, 'tcx> !RefUnwindSafe for EncodeContext<'a, 'tcx>

impl<'a, 'tcx> !Send for EncodeContext<'a, 'tcx>

impl<'a, 'tcx> !Sync for EncodeContext<'a, 'tcx>

impl<'a, 'tcx> Unpin for EncodeContext<'a, 'tcx>

impl<'a, 'tcx> !UnwindSafe for EncodeContext<'a, 'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized, 
[src]

impl<E> FingerprintEncoder for E where
    E: Encoder, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.