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]