Skip to content

ICE on nightly building futures-util #151028

@aidanwolter3

Description

@aidanwolter3

I encountered an internal compiler error when building future-utils on rust nightly (01/11).

Reproduction

rustup toolchain install nightly

git clone https://github.com/rust-lang/futures-rs.git
cd futures-rs

cargo +nightly doc

Meta

Rust version:

>  rustup +nightly show -v
...

nightly-x86_64-unknown-linux-gnu (active)
  rustc 1.94.0-nightly (b68e16cfc 2026-01-11)

...

Error output and Backtrace

> RUST_BACKTRACE=1 cargo +nightly doc
...

error: internal compiler error: src/librustdoc/passes/collect_intra_doc_links.rs:419:17: no resolution for "Flatten" MacroNS DefId(0:117 ~ futures_util[2b92]::future::future)
   --> futures-util/src/lib.rs:270:9
    |
270 | /         pin_project_lite::pin_project! {
271 | |             #[must_use = "futures/streams/sinks do nothing unless you `.await` or poll them"]
272 | |             $(#[$attr])*
273 | |             pub struct $name< $($arg),* > $(where $($bound)*)* { #[pin] inner: $t }
274 | |         }
    | |_________^
    |
   ::: futures-util/src/future/future/mod.rs:37:1
    |
 37 | / delegate_all!(
 38 | |     /// Stream for the [`flatten_stream`](FutureExt::flatten_stream) method.
 39 | |     FlattenStream<F>(
 40 | |         flatten::Flatten<F, <F as Future>::Output>
 41 | |     ): Debug + Sink + Stream + FusedStream + New[|x: F| flatten::Flatten::new(x)]
 42 | |     where F: Future
 43 | | );
    | |_- in this macro invocation
    |
    = note: this error: internal compiler error originates in the macro `$crate::__pin_project_reconstruct` which comes from the expansion of the macro `delegate_all` (in Nightly builds, run with -Z macro-backtrace for more info)


thread 'rustc' (378876) panicked at src/librustdoc/passes/collect_intra_doc_links.rs:419:17:
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: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_path
   8: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve
   9: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_link
  10: <rustdoc::passes::collect_intra_doc_links::LinkCollector>::resolve_links::{closure#0}
  11: <rustdoc::passes::collect_intra_doc_links::LinkCollector as rustdoc::visit::DocVisitor>::visit_item
  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::core::run_global_ctxt
  15: rustdoc::main_args::{closure#2}::{closure#0}
  16: rustc_interface::interface::run_compiler::<(), rustdoc::main_args::{closure#2}>::{closure#1}
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Suspected culprit

We believe that it is caused by one of these commits. Possibly deprecated-doc-intra-link.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-intra-doc-linksArea: Intra-doc links, the ability to link to items in docs by nameC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️I-prioritizeIssue: Indicates that prioritization has been requested for this issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.regression-untriagedUntriaged performance or correctness regression.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions