Skip to content

Intra-doc links don't work for associated items on re-exported primitives #77267

Closed
@jyn514

Description

@jyn514

I tried this code:

/// [std::primitive::i32::MAX]
pub fn f() {}

I expected to see this happen: Rustdoc links to https://doc.rust-lang.org/stable/std/primitive.i32.html#associatedconstant.MAX

Instead, this happened: Rustdoc gives an error:

warning: unresolved link to `std::primitive::i32::MAX`
 --> prim-assoc.rs:1:6
  |
1 | /// [std::primitive::i32::MAX]
  |      ^^^^^^^^^^^^^^^^^^^^^^^^ the builtin type `i32` has no associated item named `MAX`
  |
  = note: `#[warn(broken_intra_doc_links)]` on by default

The issue is

if let Some((path, prim)) = is_primitive(&path_root, TypeNS) {
which does string comparison instead of going through resolve.

Meta

rustdoc --version: rustdoc 1.48.0-nightly (f68e08933 2020-09-19)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-associated-itemsArea: Associated items (types, constants & functions)A-intra-doc-linksArea: Intra-doc links, the ability to link to items in docs by nameC-bugCategory: This is a bug.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions