diff options
| author | Oliver Middleton <olliemail27@gmail.com> | 2020-01-26 21:28:09 +0000 |
|---|---|---|
| committer | Oliver Middleton <olliemail27@gmail.com> | 2020-01-26 21:32:43 +0000 |
| commit | bbc2ae7590ad53fca02fda187e7f9c2470c9e949 (patch) | |
| tree | 81c7cf5218d27e6447126afb9a354798d3e0097b /src/librustdoc/html | |
| parent | 80a65bcaf2f2b8a5c659b21b32b42bc300338a0e (diff) | |
| download | rust-bbc2ae7590ad53fca02fda187e7f9c2470c9e949.tar.gz rust-bbc2ae7590ad53fca02fda187e7f9c2470c9e949.zip | |
rustdoc: Fix re-exporting primitive types
* Generate links to the primitive type docs for re-exports. * Don't ICE on cross crate primitive type re-exports. * Make primitive type re-exports show up cross crate.
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/format.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 79923fc3d36..c3313ba63ef 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -1171,11 +1171,14 @@ impl clean::ImportSource { display_fn(move |f| match self.did { Some(did) => resolved_path(f, did, &self.path, true, false), _ => { - for (i, seg) in self.path.segments.iter().enumerate() { - if i > 0 { - write!(f, "::")? - } - write!(f, "{}", seg.name)?; + for seg in &self.path.segments[..self.path.segments.len() - 1] { + write!(f, "{}::", seg.name)?; + } + let name = self.path.last_name(); + if let hir::def::Res::PrimTy(p) = self.path.res { + primitive_link(f, PrimitiveType::from(p), name)?; + } else { + write!(f, "{}", name)?; } Ok(()) } |
