Closed
Description
Problem
cargo doc
panics when run on crate A that depends on crate B, when crate B depends on proc-macro2
. This does not happen when directly running cargo doc
on crate B.
Error & Backtrace
thread 'main' panicked at 'activated_features for invalid package: features did not find PackageId { name: "proc-macro2", version: "1.0.24", source: "registry `https://github.com/rust-lang/crates.io-index`" } false
Stack backtrace:
0: std::backtrace::Backtrace::create
1: std::backtrace::Backtrace::capture
2: cargo::core::resolver::features::ResolvedFeatures::activated_features_int
3: cargo::core::compiler::unit_dependencies::new_unit_dep_with_profile
4: cargo::core::compiler::unit_dependencies::compute_deps
5: cargo::core::compiler::unit_dependencies::deps_of
6: cargo::core::compiler::unit_dependencies::deps_of
7: cargo::core::compiler::unit_dependencies::build_unit_dependencies
8: cargo::ops::cargo_compile::create_bcx
9: cargo::ops::cargo_compile::compile_ws
10: cargo::ops::cargo_compile::compile
11: cargo::ops::cargo_doc::doc
12: cargo::commands::doc::exec
13: cargo::cli::main
14: cargo::main
15: std::sys_common::backtrace::__rust_begin_short_backtrace
16: std::rt::lang_start::{{closure}}
17: std::rt::lang_start_internal
18: _main', src/tools/cargo/src/cargo/core/resolver/features.rs:235:14
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: core::option::expect_none_failed
3: cargo::core::compiler::unit_dependencies::new_unit_dep_with_profile
4: cargo::core::compiler::unit_dependencies::compute_deps
5: cargo::core::compiler::unit_dependencies::deps_of
6: cargo::core::compiler::unit_dependencies::deps_of
7: cargo::core::compiler::unit_dependencies::build_unit_dependencies
8: cargo::ops::cargo_compile::create_bcx
9: cargo::ops::cargo_compile::compile_ws
10: cargo::ops::cargo_compile::compile
11: cargo::ops::cargo_doc::doc
12: cargo::commands::doc::exec
13: cargo::cli::main
14: cargo::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
Steps
- Clone the minimal example at https://github.com/nerosnm/proc-macro-resolver-bug
- Run
cargo doc
(or, more explicitly,cargo +nightly-2021-01-10 doc
)
Possible Solution(s)
This looks similar to #8774 to me, although from what I can tell it's not explicitly relying on any features specific to the new resolver.
Notes
Output of cargo version
: cargo 1.51.0-nightly (329895f 2021-01-06)