Code
mod inner {
/// [std::vec::Vec]
pub use std::vec::Vec as MyVec;
}
Reproduces with just rustdoc repro.rs; no dependencies or Cargo needed.
Key conditions:
- A private module (
mod, not pub mod)
- A pub use re-export inside that module
- An intra-doc link (
[path::to::Type]) on the pub use item
The ICE doesn't tigger if any one of these three conditions is removed.
Meta
Reproduces on stable, 1.94, and nightly.
rustc --version --verbose:
rustc 1.96.0-nightly (69370dc4a 2026-03-05)
binary: rustc
commit-hash: 69370dc4a8862b8401615a2a7b950704ba66c495
commit-date: 2026-03-05
host: aarch64-apple-darwin
release: 1.96.0-nightly
LLVM version: 22.1.0
Error output
error: internal compiler error: /rustc-dev/69370dc4a8862b8401615a2a7b950704ba66c495/compiler/rustc_metadata/src/rmeta/encoder.rs:2574:36: no
resolutions for a doc link
--> repro.rs:1:1
|
1 | mod inner {
|
Backtrace
thread 'rustc' panicked at /rustc-dev/69370dc4a8862b8401615a2a7b950704ba66c495/compiler/rustc_metadata/src/rmeta/encoder.rs:2574:36:
Box<dyn Any>
stack backtrace:
0: std::panicking::begin_panic::<rustc_errors::ExplicitBug>
1: <rustc_errors::diagnostic::BugAbort as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
2: <rustc_errors::DiagCtxtHandle>::span_bug::<rustc_span::span_encoding::Span, alloc::string::String>
3: rustc_middle::util::bug::opt_span_bug_fmt::<rustc_span::span_encoding::Span>::{closure#0}
4: rustc_middle::ty::context::tls::with_opt::<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span::span_encoding::Span>::{closure#0},
!>::{closure#0}
5: rustc_middle::ty::context::tls::with_context_opt::<rustc_middle::ty::context::tls::with_opt<rustc_middle::util::bug::opt_span_bug_fmt<rustc_span:
:span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
6: rustc_middle::util::bug::span_bug_fmt::<rustc_span::span_encoding::Span>
7: <rustc_metadata::rmeta::encoder::provide::{closure#0} as core::ops::function::FnOnce<(rustc_middle::ty::context::TyCtxt,
rustc_span::def_id::LocalDefId)>>::call_once
8: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_path
9: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve
10: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_link
11: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_links::{closure#0}
12: <rustdoc::passes::collect_intra_doc_links::LinkCollector as rustdoc::visit::DocVisitor>::visit_item
13: <rustdoc::passes::collect_intra_doc_links::LinkCollector as rustdoc::visit::DocVisitor>::visit_item
14: <rustdoc::passes::collect_intra_doc_links::LinkCollector as rustdoc::visit::DocVisitor>::visit_item
15: rustdoc::core::run_global_ctxt
16: rustdoc::main_args::{closure#2}::{closure#0}
17: rustc_interface::interface::run_compiler::<(), rustdoc::main_args::{closure#2}>::{closure#1}
Code
Reproduces with just
rustdoc repro.rs; no dependencies or Cargo needed.Key conditions:
mod, notpub mod)[path::to::Type]) on the pub use itemThe ICE doesn't tigger if any one of these three conditions is removed.
Meta
Reproduces on stable, 1.94, and nightly.
rustc --version --verbose:Error output
Backtrace