diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index bed4bae2492c..08499cef33ef 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -474,11 +474,12 @@ impl clean::GenericArgs { // Possible errors when computing href link source for a `DefId` crate enum HrefError { - // `DefId` is in an unknown location. This seems to happen when building without dependencies - // but a trait from a dependency is still visible - UnknownLocation, - // Unavailable because private - Unavailable, + /// This item is known to rustdoc, but from a crate that does not have documentation generated. + /// + /// This can only happen for non-local items. + DocumentationNotBuilt, + /// This can only happen for non-local items when `--document-private-items` is not passed. + Private, // Not in external cache, href link should be in same page NotInExternalCache, } @@ -491,7 +492,7 @@ crate fn href(did: DefId, cx: &Context<'_>) -> Result<(String, ItemType, Vec) -> Result<(String, ItemType, Vec href_relative_parts(module_fqp, relative_to), - ExternalLocation::Unknown => return Err(HrefError::UnknownLocation), + ExternalLocation::Unknown => return Err(HrefError::DocumentationNotBuilt), }, ) } else { diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index c814ff3075d0..e6a10c47497b 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -869,7 +869,7 @@ fn render_assoc_item( match href(did.expect_def_id(), cx) { Ok(p) => Some(format!("{}#{}.{}", p.0, ty, name)), - Err(HrefError::UnknownLocation) => None, + Err(HrefError::DocumentationNotBuilt) => None, Err(_) => Some(format!("#{}.{}", ty, name)), } }