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: RenderOptionsExpand 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: CacheExpand 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: OutputFormatExpand description
Used by calculate_doc_coverage.
Implementations
impl<'tcx> DocContext<'tcx>[src]
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]
&mut self,
def_id: DefId,
f: F
) -> T
pub(crate) fn enter_resolver<F, R>(&self, f: F) -> R where
F: FnOnce(&mut Resolver<'_>) -> R, [src]
F: FnOnce(&mut Resolver<'_>) -> R,
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> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Instrument for T[src]
impl<T> Instrument for T[src]fn instrument(self, span: Span) -> Instrumented<Self>[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]
fn in_current_span(self) -> Instrumented<Self>[src]impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>, pub fn vzip(self) -> V
impl<T> WithConstness for T[src]
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]
T: ?Sized,