[−][src]Struct rustdoc::passes::collect_intra_doc_links::LinkCollector
Fields
cx: &'a DocContext<'tcx>mod_ids: Vec<DefId>A stack of modules used to decide what scope to resolve in.
The last module will be used if the parent scope of the current item is unknown.
kind_side_channel: Cell<Option<(DefKind, DefId)>>This is used to store the kind of associated items,
because clean and the disambiguator code expect them to be different.
See the code for associated items on inherent impls for details.
Implementations
impl<'a, 'tcx> LinkCollector<'a, 'tcx>[src]
pub(in passes::collect_intra_doc_links) fn new(
cx: &'a DocContext<'tcx>
) -> Self[src]
cx: &'a DocContext<'tcx>
) -> Self
pub(in passes::collect_intra_doc_links) fn variant_field<'path>(
&self,
path_str: &'path str,
current_item: &Option<String>,
module_id: DefId
) -> Result<(Res, Option<String>), ErrorKind<'path>>[src]
&self,
path_str: &'path str,
current_item: &Option<String>,
module_id: DefId
) -> Result<(Res, Option<String>), ErrorKind<'path>>
Given a full link, parse it as an enum struct variant.
In particular, this will return an error whenever there aren't three full path segments left in the link.
pub(in passes::collect_intra_doc_links) fn resolve_primitive_associated_item<'path>(
&self,
prim_ty: PrimTy,
ns: Namespace,
module_id: DefId,
item_name: Symbol,
item_str: &'path str
) -> Result<(Res, Option<String>), ErrorKind<'path>>[src]
&self,
prim_ty: PrimTy,
ns: Namespace,
module_id: DefId,
item_name: Symbol,
item_str: &'path str
) -> Result<(Res, Option<String>), ErrorKind<'path>>
Given a primitive type, try to resolve an associated item.
HACK(jynelson): item_str is passed in instead of derived from item_name so the
lifetimes on &'path will work.
pub(in passes::collect_intra_doc_links) fn resolve_macro(
&self,
path_str: &'a str,
module_id: DefId
) -> Result<Res, ResolutionFailure<'a>>[src]
&self,
path_str: &'a str,
module_id: DefId
) -> Result<Res, ResolutionFailure<'a>>
Resolves a string as a macro.
FIXME(jynelson): Can this be unified with resolve()?
pub(in passes::collect_intra_doc_links) fn resolve_path(
&self,
path_str: &str,
ns: Namespace,
module_id: DefId
) -> Option<Res>[src]
&self,
path_str: &str,
ns: Namespace,
module_id: DefId
) -> Option<Res>
Convenience wrapper around resolve_str_path_error.
This also handles resolving true and false as booleans.
NOTE: resolve_str_path_error knows only about paths, not about types.
Associated items will never be resolved by this function.
pub(in passes::collect_intra_doc_links) fn resolve<'path>(
&self,
path_str: &'path str,
ns: Namespace,
current_item: &Option<String>,
module_id: DefId,
extra_fragment: &Option<String>
) -> Result<(Res, Option<String>), ErrorKind<'path>>[src]
&self,
path_str: &'path str,
ns: Namespace,
current_item: &Option<String>,
module_id: DefId,
extra_fragment: &Option<String>
) -> Result<(Res, Option<String>), ErrorKind<'path>>
Resolves a string as a path within a particular namespace. Returns an optional URL fragment in the case of variants and methods.
pub(in passes::collect_intra_doc_links) fn check_full_res(
&self,
ns: Namespace,
path_str: &str,
module_id: DefId,
current_item: &Option<String>,
extra_fragment: &Option<String>
) -> Option<Res>[src]
&self,
ns: Namespace,
path_str: &str,
module_id: DefId,
current_item: &Option<String>,
extra_fragment: &Option<String>
) -> Option<Res>
Used for reporting better errors.
Returns whether the link resolved 'fully' in another namespace.
'fully' here means that all parts of the link resolved, not just some path segments.
This returns the Res even if it was erroneous for some reason
(such as having invalid URL fragments or being in the wrong namespace).
impl<'_, '_> LinkCollector<'_, '_>[src]
pub(in passes::collect_intra_doc_links) fn resolve_link(
&self,
item: &Item,
dox: &str,
current_item: &Option<String>,
parent_node: Option<DefId>,
parent_name: &Option<String>,
krate: CrateNum,
ori_link: String,
link_range: Option<Range<usize>>
) -> Option<ItemLink>[src]
&self,
item: &Item,
dox: &str,
current_item: &Option<String>,
parent_node: Option<DefId>,
parent_name: &Option<String>,
krate: CrateNum,
ori_link: String,
link_range: Option<Range<usize>>
) -> Option<ItemLink>
This is the entry point for resolving an intra-doc link.
FIXME(jynelson): this is way too many arguments
pub(in passes::collect_intra_doc_links) fn resolve_with_disambiguator(
&self,
disambiguator: Option<Disambiguator>,
item: &Item,
dox: &str,
path_str: &str,
current_item: &Option<String>,
base_node: DefId,
extra_fragment: Option<String>,
ori_link: &str,
link_range: Option<Range<usize>>
) -> Option<(Res, Option<String>)>[src]
&self,
disambiguator: Option<Disambiguator>,
item: &Item,
dox: &str,
path_str: &str,
current_item: &Option<String>,
base_node: DefId,
extra_fragment: Option<String>,
ori_link: &str,
link_range: Option<Range<usize>>
) -> Option<(Res, Option<String>)>
After parsing the disambiguator, resolve the main part of the link.
Trait Implementations
impl<'a, 'tcx> DocFolder for LinkCollector<'a, 'tcx>[src]
pub(crate) fn fold_item(&mut self, item: Item) -> Option<Item>[src]
pub(crate) fn fold_inner_recur(&mut self, kind: ItemKind) -> ItemKind[src]
pub(crate) fn fold_item_recur(&mut self, item: Item) -> Option<Item>[src]
pub(crate) fn fold_mod(&mut self, m: Module) -> Module[src]
pub(crate) fn fold_crate(&mut self, c: Crate) -> Crate[src]
Auto Trait Implementations
impl<'a, 'tcx> !RefUnwindSafe for LinkCollector<'a, 'tcx>
impl<'a, 'tcx> !Send for LinkCollector<'a, 'tcx>
impl<'a, 'tcx> !Sync for LinkCollector<'a, 'tcx>
impl<'a, 'tcx> Unpin for LinkCollector<'a, 'tcx> where
'tcx: 'a,
'tcx: 'a,
impl<'a, 'tcx> !UnwindSafe for LinkCollector<'a, 'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
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]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,