Struct rustdoc::core::DocContext[][src]

pub(crate) struct DocContext<'tcx> {
Show fields pub(crate) tcx: TyCtxt<'tcx>, pub(crate) resolver: Rc<RefCell<BoxedResolver>>, pub(crate) param_env: ParamEnv<'tcx>, pub(crate) external_traits: Rc<RefCell<FxHashMap<DefId, TraitWithExtraInfo>>>, pub(crate) active_extern_traits: FxHashSet<DefId>, pub(crate) ty_substs: FxHashMap<DefId, Type>, pub(crate) lt_substs: FxHashMap<DefId, Lifetime>, pub(crate) ct_substs: FxHashMap<DefId, Constant>, pub(crate) impl_trait_bounds: FxHashMap<ImplTraitParam, Vec<GenericBound>>, pub(crate) generated_synthetics: FxHashSet<(Ty<'tcx>, DefId)>, pub(crate) auto_traits: Vec<DefId>, pub(crate) render_options: RenderOptions, pub(crate) module_trait_cache: FxHashMap<DefId, FxHashSet<DefId>>, pub(crate) cache: Cache, pub(crate) inlined: FxHashSet<FakeDefId>, pub(crate) output_format: OutputFormat,
}

Fields

tcx: TyCtxt<'tcx>resolver: Rc<RefCell<BoxedResolver>>
Expand description

Name resolver. Used for intra-doc links.

The Rc<RefCell<...>> wrapping is needed because that is what’s returned by Queries::expansion().

param_env: ParamEnv<'tcx>
Expand description

Used for normalization.

Most of this logic is copied from rustc_lint::late.

external_traits: Rc<RefCell<FxHashMap<DefId, TraitWithExtraInfo>>>
Expand description

Later on moved through clean::Crate into cache

active_extern_traits: FxHashSet<DefId>
Expand description

Used while populating external_traits to ensure we don’t process the same trait twice at the same time.

ty_substs: FxHashMap<DefId, Type>
Expand description

Table DefId of type parameter -> substituted type

lt_substs: FxHashMap<DefId, Lifetime>
Expand description

Table DefId of lifetime parameter -> substituted lifetime

ct_substs: FxHashMap<DefId, Constant>
Expand description

Table DefId of const parameter -> substituted const

impl_trait_bounds: FxHashMap<ImplTraitParam, Vec<GenericBound>>
Expand description

Table synthetic type parameter for impl Trait in argument position -> bounds

generated_synthetics: FxHashSet<(Ty<'tcx>, DefId)>
Expand description

Auto-trait or blanket impls processed so far, as (self_ty, trait_def_id).

auto_traits: Vec<DefId>render_options: RenderOptions
Expand description

The options given to rustdoc that could be relevant to a pass.

module_trait_cache: FxHashMap<DefId, FxHashSet<DefId>>
Expand description

The traits in scope for a given module.

See collect_intra_doc_links::traits_implemented_by for more details. map<module, set<trait>>

cache: Cache
Expand description

This same cache is used throughout rustdoc, including in crate::html::render.

inlined: FxHashSet<FakeDefId>
Expand description

Used by clean::inline to tell if an item has already been inlined.

output_format: OutputFormat
Expand description

Used by calculate_doc_coverage.

Implementations

impl<'tcx> DocContext<'tcx>[src]

pub(crate) fn sess(&self) -> &'tcx Session[src]

pub(crate) fn with_param_env<T, F: FnOnce(&mut Self) -> T>(
    &mut self,
    def_id: DefId,
    f: F
) -> T
[src]

pub(crate) fn enter_resolver<F, R>(&self, f: F) -> R where
    F: FnOnce(&mut Resolver<'_>) -> R, 
[src]

pub(crate) fn enter_alias<F, R>(
    &mut self,
    ty_substs: FxHashMap<DefId, Type>,
    lt_substs: FxHashMap<DefId, Lifetime>,
    ct_substs: FxHashMap<DefId, Constant>,
    f: F
) -> R where
    F: FnOnce(&mut Self) -> R, 
[src]

Call the closure with the given parameters set as the substitutions for a type alias’ RHS.

pub(crate) fn as_local_hir_id(
    tcx: TyCtxt<'_>,
    def_id: FakeDefId
) -> Option<HirId>
[src]

Like hir().local_def_id_to_hir_id(), but skips calling it on fake DefIds. (This avoids a slice-index-out-of-bounds panic.)

Auto Trait Implementations

impl<'tcx> !RefUnwindSafe for DocContext<'tcx>

impl<'tcx> !Send for DocContext<'tcx>

impl<'tcx> !Sync for DocContext<'tcx>

impl<'tcx> Unpin for DocContext<'tcx>

impl<'tcx> !UnwindSafe for DocContext<'tcx>

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T> Instrument for T[src]

fn instrument(self, span: Span) -> Instrumented<Self>[src]

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

fn in_current_span(self) -> Instrumented<Self>[src]

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]

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

Layout

Note: Most layout information is completely unstable and may be different between compiler versions and platforms. 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: 1256 bytes