rust-lang / rust-lang/rust

rustdoc: `cargo deadlinks` reveals invalid fragments in links generated by rustdoc

Open
#141,115 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-intra-doc-links C-bug E-needs-mcve T-rustdoc
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

See this run:
https://github.com/wgsl-analyzer/wgsl-analyzer/actions/runs/14971777301/job/42054178848#step:8:27

I expected to see this happen: Generated links to methods are valid

Instead, this happened:

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.69s
   Generated C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\index.html and 14 other files
Found invalid urls in struct.ParseImportNoPreprocessorQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.ParseImportNoPreprocessorQuery.html does not exist!
Found invalid urls in struct.LineIndexQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.LineIndexQuery.html does not exist!
Found invalid urls in struct.ParseImportQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.ParseImportQuery.html does not exist!
Found invalid urls in struct.ParseQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.ParseQuery.html does not exist!
Found invalid urls in struct.ParseNoPreprocessorQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.ParseNoPreprocessorQuery.html does not exist!
Found invalid urls in struct.ParseWithUnconfiguredQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\base_db\struct.ParseWithUnconfiguredQuery.html does not exist!
Found invalid urls in db\struct.BodyQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.BodyQuery.html does not exist!
Found invalid urls in db\struct.AstIdMapQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.AstIdMapQuery.html does not exist!
Found invalid urls in db\struct.AttrsQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.AttrsQuery.html does not exist!
Found invalid urls in db\struct.GetFileIdQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.GetFileIdQuery.html does not exist!
Found invalid urls in db\struct.BodyWithSourceMapQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.BodyWithSourceMapQuery.html does not exist!
Found invalid urls in db\struct.GetPathQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.GetPathQuery.html does not exist!
Found invalid urls in db\struct.ExpressionScopesQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.ExpressionScopesQuery.html does not exist!
Found invalid urls in db\struct.FnDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.FnDataQuery.html does not exist!
Found invalid urls in db\struct.GlobalConstantDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.GlobalConstantDataQuery.html does not exist!
Found invalid urls in db\struct.GlobalVarDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.GlobalVarDataQuery.html does not exist!
Found invalid urls in db\struct.ModuleInfoQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.ModuleInfoQuery.html does not exist!
Found invalid urls in db\struct.OverrideDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.OverrideDataQuery.html does not exist!
Found invalid urls in db\struct.ResolveFullSourceQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.ResolveFullSourceQuery.html does not exist!
Found invalid urls in db\struct.TextRangeFromFullQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.TextRangeFromFullQuery.html does not exist!
Found invalid urls in db\struct.ParseOrResolveQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.ParseOrResolveQuery.html does not exist!
Found invalid urls in db\struct.StructDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.StructDataQuery.html does not exist!
Found invalid urls in db\struct.TypeAliasDataQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_def\db\struct.TypeAliasDataQuery.html does not exist!
Found invalid urls in db\struct.FieldTypesQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_ty\db\struct.FieldTypesQuery.html does not exist!
Found invalid urls in db\struct.FunctionTypeQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_ty\db\struct.FunctionTypeQuery.html does not exist!
Found invalid urls in db\struct.StructIsUsedInUniformQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_ty\db\struct.StructIsUsedInUniformQuery.html does not exist!
Found invalid urls in db\struct.InferQuery.html:
        Fragment #tymethod.execute at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\hir_ty\db\struct.InferQuery.html does not exist!
Found invalid urls in struct.RootDatabase.html:
        Fragment #tymethod.maybe_changed_since at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.ops_salsa_runtime at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.group_storage at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.for_each_query at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.fmt_index at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.ops_salsa_runtime_mut at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Fragment #tymethod.ops_database at C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.RootDatabase.html does not exist!
        Linked file at path C:\Users\BenjaminBrienen\source\wgsl-analyzer\target\doc\ide\struct.QueryTable.html does not exist!
Meta

rustc --version --verbose:

rustc 1.87.0 (17067e9ac 2025-05-09)
binary: rustc
commit-hash: 17067e9ac6d7ecb70e50f92c1944e545188d2359
commit-date: 2025-05-09
host: x86_64-pc-windows-msvc
release: 1.87.0
LLVM version: 20.1.1

same result using cargo +nightly deadlinks

If I visit "file:///C:/Users/BenjaminBrienen/source/wgsl-analyzer/target/doc/ide/struct.RootDatabase.html#method.group_storage" then it does take me straight to group_storage method. If I put "file:///C:/Users/BenjaminBrienen/source/wgsl-analyzer/target/doc/ide/struct.RootDatabase.html#tymethod.group_storage" instead, then it only visits the page because the fragment is invalid.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the report by generating documentation for the affected project and running cargo deadlinks, then inspect rustdoc's generated HTML links and fragments such as those in struct.RootDatabase.html. Done means method links resolve to existing fragments and cargo deadlinks reports no invalid fragments or missing linked files.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.