diff options
| -rw-r--r-- | src/librustdoc/html/format.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index bb68c84f529..973036a4098 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -879,11 +879,16 @@ fn primitive_link_fragment( match m.primitive_locations.get(&prim) { Some(&def_id) if def_id.is_local() => { let len = cx.current.len(); - let len = if len == 0 { 0 } else { len - 1 }; + let path = if len == 0 { + let cname_sym = ExternalCrate { crate_num: def_id.krate }.name(cx.tcx()); + format!("{cname_sym}/") + } else { + "../".repeat(len - 1) + }; write!( f, "<a class=\"primitive\" href=\"{}primitive.{}.html{fragment}\">", - "../".repeat(len), + path, prim.as_sym() )?; needs_termination = true; |
