Rename Type::def_id_full()
to Type::def_id()
It should be preferred over `def_id_no_primitives()`, so it should have a shorter name. I also put it before `def_id_no_primitives()` so that it shows up first in the docs.
This commit is contained in:
parent
6e3561e149
commit
f93cf66507
7 changed files with 29 additions and 32 deletions
|
@ -374,7 +374,7 @@ crate fn build_impl(
|
||||||
// Only inline impl if the implementing type is
|
// Only inline impl if the implementing type is
|
||||||
// reachable in rustdoc generated documentation
|
// reachable in rustdoc generated documentation
|
||||||
if !did.is_local() {
|
if !did.is_local() {
|
||||||
if let Some(did) = for_.def_id_full(&cx.cache) {
|
if let Some(did) = for_.def_id(&cx.cache) {
|
||||||
if !cx.cache.access_levels.is_public(did) {
|
if !cx.cache.access_levels.is_public(did) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -462,7 +462,7 @@ crate fn build_impl(
|
||||||
}
|
}
|
||||||
|
|
||||||
while let Some(ty) = stack.pop() {
|
while let Some(ty) = stack.pop() {
|
||||||
if let Some(did) = ty.def_id_full(&cx.cache) {
|
if let Some(did) = ty.def_id(&cx.cache) {
|
||||||
if tcx.get_attrs(did).lists(sym::doc).has_word(sym::hidden) {
|
if tcx.get_attrs(did).lists(sym::doc).has_word(sym::hidden) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ impl<'tcx> Clean<Type> for ty::ProjectionTy<'tcx> {
|
||||||
let self_type = self.self_ty().clean(cx);
|
let self_type = self.self_ty().clean(cx);
|
||||||
Type::QPath {
|
Type::QPath {
|
||||||
name: cx.tcx.associated_item(self.item_def_id).ident.name,
|
name: cx.tcx.associated_item(self.item_def_id).ident.name,
|
||||||
self_def_id: self_type.def_id_full(&cx.cache),
|
self_def_id: self_type.def_id(&cx.cache),
|
||||||
self_type: box self_type,
|
self_type: box self_type,
|
||||||
trait_,
|
trait_,
|
||||||
}
|
}
|
||||||
|
@ -1887,7 +1887,7 @@ fn clean_impl(impl_: &hir::Impl<'_>, hir_id: hir::HirId, cx: &mut DocContext<'_>
|
||||||
}
|
}
|
||||||
|
|
||||||
let for_ = impl_.self_ty.clean(cx);
|
let for_ = impl_.self_ty.clean(cx);
|
||||||
let type_alias = for_.def_id_full(&cx.cache).and_then(|did| match tcx.def_kind(did) {
|
let type_alias = for_.def_id(&cx.cache).and_then(|did| match tcx.def_kind(did) {
|
||||||
DefKind::TyAlias => Some(tcx.type_of(did).clean(cx)),
|
DefKind::TyAlias => Some(tcx.type_of(did).clean(cx)),
|
||||||
_ => None,
|
_ => None,
|
||||||
});
|
});
|
||||||
|
|
|
@ -1529,18 +1529,7 @@ impl Type {
|
||||||
QPath { ref self_type, .. } => return self_type.inner_def_id(cache),
|
QPath { ref self_type, .. } => return self_type.inner_def_id(cache),
|
||||||
Generic(_) | Infer | ImplTrait(_) => return None,
|
Generic(_) | Infer | ImplTrait(_) => return None,
|
||||||
};
|
};
|
||||||
cache.and_then(|c| Primitive(t).def_id_full(c))
|
cache.and_then(|c| Primitive(t).def_id(c))
|
||||||
}
|
|
||||||
|
|
||||||
/// Use this method to get the [`DefId`] of a [`clean`] AST node.
|
|
||||||
/// This will return [`None`] when called on a primitive [`clean::Type`].
|
|
||||||
/// Use [`Self::def_id_full`] if you want to include primitives.
|
|
||||||
///
|
|
||||||
/// [`clean`]: crate::clean
|
|
||||||
/// [`clean::Type`]: crate::clean::Type
|
|
||||||
// FIXME: get rid of this function and always use `def_id_full`
|
|
||||||
crate fn def_id_no_primitives(&self) -> Option<DefId> {
|
|
||||||
self.inner_def_id(None)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Use this method to get the [DefId] of a [clean] AST node, including [PrimitiveType]s.
|
/// Use this method to get the [DefId] of a [clean] AST node, including [PrimitiveType]s.
|
||||||
|
@ -1548,9 +1537,20 @@ impl Type {
|
||||||
/// See [`Self::def_id_no_primitives`] for more.
|
/// See [`Self::def_id_no_primitives`] for more.
|
||||||
///
|
///
|
||||||
/// [clean]: crate::clean
|
/// [clean]: crate::clean
|
||||||
crate fn def_id_full(&self, cache: &Cache) -> Option<DefId> {
|
crate fn def_id(&self, cache: &Cache) -> Option<DefId> {
|
||||||
self.inner_def_id(Some(cache))
|
self.inner_def_id(Some(cache))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Use this method to get the [`DefId`] of a [`clean`] AST node.
|
||||||
|
/// This will return [`None`] when called on a primitive [`clean::Type`].
|
||||||
|
/// Use [`Self::def_id`] if you want to include primitives.
|
||||||
|
///
|
||||||
|
/// [`clean`]: crate::clean
|
||||||
|
/// [`clean::Type`]: crate::clean::Type
|
||||||
|
// FIXME: get rid of this function and always use `def_id`
|
||||||
|
crate fn def_id_no_primitives(&self) -> Option<DefId> {
|
||||||
|
self.inner_def_id(None)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A primitive (aka, builtin) type.
|
/// A primitive (aka, builtin) type.
|
||||||
|
|
|
@ -207,7 +207,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map_or(false, |t| self.cache.masked_crates.contains(&t.def_id().krate))
|
.map_or(false, |t| self.cache.masked_crates.contains(&t.def_id().krate))
|
||||||
|| i.for_
|
|| i.for_
|
||||||
.def_id_full(self.cache)
|
.def_id(self.cache)
|
||||||
.map_or(false, |d| self.cache.masked_crates.contains(&d.krate))
|
.map_or(false, |d| self.cache.masked_crates.contains(&d.krate))
|
||||||
{
|
{
|
||||||
return None;
|
return None;
|
||||||
|
@ -456,7 +456,7 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> {
|
||||||
|
|
||||||
if let Some(generics) = i.trait_.as_ref().and_then(|t| t.generics()) {
|
if let Some(generics) = i.trait_.as_ref().and_then(|t| t.generics()) {
|
||||||
for bound in generics {
|
for bound in generics {
|
||||||
if let Some(did) = bound.def_id_full(self.cache) {
|
if let Some(did) = bound.def_id(self.cache) {
|
||||||
dids.insert(did);
|
dids.insert(did);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1168,8 +1168,8 @@ fn render_deref_methods(
|
||||||
debug!("Render deref methods for {:#?}, target {:#?}", impl_.inner_impl().for_, target);
|
debug!("Render deref methods for {:#?}, target {:#?}", impl_.inner_impl().for_, target);
|
||||||
let what =
|
let what =
|
||||||
AssocItemRender::DerefFor { trait_: deref_type, type_: real_target, deref_mut_: deref_mut };
|
AssocItemRender::DerefFor { trait_: deref_type, type_: real_target, deref_mut_: deref_mut };
|
||||||
if let Some(did) = target.def_id_full(cache) {
|
if let Some(did) = target.def_id(cache) {
|
||||||
if let Some(type_did) = impl_.inner_impl().for_.def_id_full(cache) {
|
if let Some(type_did) = impl_.inner_impl().for_.def_id(cache) {
|
||||||
// `impl Deref<Target = S> for S`
|
// `impl Deref<Target = S> for S`
|
||||||
if did == type_did {
|
if did == type_did {
|
||||||
// Avoid infinite cycles
|
// Avoid infinite cycles
|
||||||
|
@ -1215,7 +1215,7 @@ fn should_render_item(item: &clean::Item, deref_mut_: bool, tcx: TyCtxt<'_>) ->
|
||||||
fn notable_traits_decl(decl: &clean::FnDecl, cx: &Context<'_>) -> String {
|
fn notable_traits_decl(decl: &clean::FnDecl, cx: &Context<'_>) -> String {
|
||||||
let mut out = Buffer::html();
|
let mut out = Buffer::html();
|
||||||
|
|
||||||
if let Some(did) = decl.output.as_return().and_then(|t| t.def_id_full(cx.cache())) {
|
if let Some(did) = decl.output.as_return().and_then(|t| t.def_id(cx.cache())) {
|
||||||
if let Some(impls) = cx.cache().impls.get(&did) {
|
if let Some(impls) = cx.cache().impls.get(&did) {
|
||||||
for i in impls {
|
for i in impls {
|
||||||
let impl_ = i.inner_impl();
|
let impl_ = i.inner_impl();
|
||||||
|
@ -2058,8 +2058,8 @@ fn sidebar_deref_methods(cx: &Context<'_>, out: &mut Buffer, impl_: &Impl, v: &V
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
debug!("found target, real_target: {:?} {:?}", target, real_target);
|
debug!("found target, real_target: {:?} {:?}", target, real_target);
|
||||||
if let Some(did) = target.def_id_full(c) {
|
if let Some(did) = target.def_id(c) {
|
||||||
if let Some(type_did) = impl_.inner_impl().for_.def_id_full(c) {
|
if let Some(type_did) = impl_.inner_impl().for_.def_id(c) {
|
||||||
// `impl Deref<Target = S> for S`
|
// `impl Deref<Target = S> for S`
|
||||||
if did == type_did {
|
if did == type_did {
|
||||||
// Avoid infinite cycles
|
// Avoid infinite cycles
|
||||||
|
@ -2069,7 +2069,7 @@ fn sidebar_deref_methods(cx: &Context<'_>, out: &mut Buffer, impl_: &Impl, v: &V
|
||||||
}
|
}
|
||||||
let deref_mut = v.iter().any(|i| i.trait_did() == cx.tcx().lang_items().deref_mut_trait());
|
let deref_mut = v.iter().any(|i| i.trait_did() == cx.tcx().lang_items().deref_mut_trait());
|
||||||
let inner_impl = target
|
let inner_impl = target
|
||||||
.def_id_full(c)
|
.def_id(c)
|
||||||
.or_else(|| {
|
.or_else(|| {
|
||||||
target.primitive_type().and_then(|prim| c.primitive_locations.get(&prim).cloned())
|
target.primitive_type().and_then(|prim| c.primitive_locations.get(&prim).cloned())
|
||||||
})
|
})
|
||||||
|
@ -2232,10 +2232,7 @@ fn sidebar_trait(cx: &Context<'_>, buf: &mut Buffer, it: &clean::Item, t: &clean
|
||||||
let mut res = implementors
|
let mut res = implementors
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|i| {
|
.filter(|i| {
|
||||||
i.inner_impl()
|
i.inner_impl().for_.def_id(cache).map_or(false, |d| !cache.paths.contains_key(&d))
|
||||||
.for_
|
|
||||||
.def_id_full(cache)
|
|
||||||
.map_or(false, |d| !cache.paths.contains_key(&d))
|
|
||||||
})
|
})
|
||||||
.filter_map(|i| extract_for_impl_name(&i.impl_item, cx))
|
.filter_map(|i| extract_for_impl_name(&i.impl_item, cx))
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
|
|
@ -21,7 +21,7 @@ use super::{
|
||||||
render_impl, render_stability_since_raw, write_srclink, AssocItemLink, Context,
|
render_impl, render_stability_since_raw, write_srclink, AssocItemLink, Context,
|
||||||
ImplRenderingParameters,
|
ImplRenderingParameters,
|
||||||
};
|
};
|
||||||
use crate::clean::{self};
|
use crate::clean;
|
||||||
use crate::formats::item_type::ItemType;
|
use crate::formats::item_type::ItemType;
|
||||||
use crate::formats::{AssocItemRender, Impl, RenderMode};
|
use crate::formats::{AssocItemRender, Impl, RenderMode};
|
||||||
use crate::html::escape::Escape;
|
use crate::html::escape::Escape;
|
||||||
|
@ -742,7 +742,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra
|
||||||
}
|
}
|
||||||
|
|
||||||
let (local, foreign) = implementors.iter().partition::<Vec<_>, _>(|i| {
|
let (local, foreign) = implementors.iter().partition::<Vec<_>, _>(|i| {
|
||||||
i.inner_impl().for_.def_id_full(cache).map_or(true, |d| cache.paths.contains_key(&d))
|
i.inner_impl().for_.def_id(cache).map_or(true, |d| cache.paths.contains_key(&d))
|
||||||
});
|
});
|
||||||
|
|
||||||
let (mut synthetic, mut concrete): (Vec<&&Impl>, Vec<&&Impl>) =
|
let (mut synthetic, mut concrete): (Vec<&&Impl>, Vec<&&Impl>) =
|
||||||
|
|
|
@ -70,7 +70,7 @@ crate fn collect_trait_impls(krate: Crate, cx: &mut DocContext<'_>) -> Crate {
|
||||||
|
|
||||||
if let Some(prim) = target.primitive_type() {
|
if let Some(prim) = target.primitive_type() {
|
||||||
cleaner.prims.insert(prim);
|
cleaner.prims.insert(prim);
|
||||||
} else if let Some(did) = target.def_id_full(&cx.cache) {
|
} else if let Some(did) = target.def_id(&cx.cache) {
|
||||||
cleaner.items.insert(did.into());
|
cleaner.items.insert(did.into());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue