Skip to content

Compiler panics when documenting sub-crate with links to types of super-crate on latest nightly #54100

Closed
@Lythenas

Description

@Lythenas

When I run cargo doc on this repo (branch refactor-datatypes) I receive an internal compiler error.

Everything works fine on stable (cargo +stable doc). Also everything works if I remove the links in the doc comments.

Meta

rustc --version --verbose:

rustc 1.30.0-nightly (2d4e34ca8 2018-09-09)
binary: rustc
commit-hash: 2d4e34ca8bb1369f7e0eea4cb50e6faa0827a6e5
commit-date: 2018-09-09
host: x86_64-unknown-linux-gnu
release: 1.30.0-nightly
LLVM version: 8.0

Backtrace:

 Documenting rust-orgmode-derive v0.1.0 (file:///home/ms/Repositories/rust-orgmode/rust-orgmode-derive)
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:345:21
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:477
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:391
   6: rust_begin_unwind
             at libstd/panicking.rs:326
   7: core::panicking::panic_fmt
             at libcore/panicking.rs:77
   8: core::panicking::panic
             at libcore/panicking.rs:52
   9: rustc_metadata::cstore::CStore::get_crate_data
  10: rustc_metadata::cstore_impl::<impl rustc_metadata::cstore::CStore>::load_macro_untracked
  11: rustc_resolve::build_reduced_graph::<impl rustc_resolve::Resolver<'a, 'cl>>::get_macro
  12: rustdoc::passes::collect_intra_doc_links::macro_resolve
             at librustdoc/passes/collect_intra_doc_links.rs:407
  13: <rustdoc::passes::collect_intra_doc_links::LinkCollector<'a, 'tcx, 'rcx, 'cstore> as rustdoc::fold::DocFolder>::fold_item
             at librustdoc/passes/collect_intra_doc_links.rs:318
  14: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
             at librustdoc/fold.rs:50
             at /checkout/src/libcore/iter/mod.rs:1640
             at /checkout/src/liballoc/vec.rs:1860
  15: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
  16: rustdoc::fold::DocFolder::fold_inner_recur
             at /checkout/src/liballoc/vec.rs:1772
             at /checkout/src/libcore/iter/iterator.rs:1415
             at librustdoc/fold.rs:112
             at librustdoc/fold.rs:39
  17: rustdoc::fold::DocFolder::fold_item_recur
             at librustdoc/fold.rs:102
  18: <rustdoc::passes::collect_intra_doc_links::LinkCollector<'a, 'tcx, 'rcx, 'cstore> as rustdoc::fold::DocFolder>::fold_item
             at librustdoc/passes/collect_intra_doc_links.rs:387
  19: rustdoc::passes::collect_intra_doc_links::collect_intra_doc_links
             at librustdoc/fold.rs:117
             at /checkout/src/libcore/option.rs:622
             at librustdoc/fold.rs:117
             at librustdoc/passes/collect_intra_doc_links.rs:40
  20: rustdoc::core::run_core::{{closure}}::{{closure}}
             at librustdoc/core.rs:595
  21: rustc::ty::context::tls::enter_context
             at /checkout/src/librustc_driver/driver.rs:1349
             at /checkout/src/librustc/ty/context.rs:1959
             at /checkout/src/librustc/ty/context.rs:1927
             at /checkout/src/librustc/ty/context.rs:1866
             at /checkout/src/librustc/ty/context.rs:1926
  22: <std::thread::local::LocalKey<T>>::with
             at /checkout/src/librustc/ty/context.rs:1958
             at /checkout/src/librustc/ty/context.rs:1916
             at /checkout/src/libstd/thread/local.rs:294
             at /checkout/src/libstd/thread/local.rs:248
             at /checkout/src/librustc/ty/context.rs:1908
             at /checkout/src/libstd/thread/local.rs:294
             at /checkout/src/libstd/thread/local.rs:248
  23: rustc::ty::context::TyCtxt::create_and_enter
             at /checkout/src/librustc/ty/context.rs:1900
             at /checkout/src/librustc/ty/context.rs:1938
             at /checkout/src/librustc/ty/context.rs:1244
  24: rustc_driver::driver::phase_3_run_analysis_passes
             at /checkout/src/librustc_driver/driver.rs:1257
  25: <scoped_tls::ScopedKey<T>>::set
             at librustdoc/core.rs:478
             at /checkout/src/librustc_driver/driver.rs:74
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
  26: rustdoc::core::run_core
             at /checkout/src/librustc_driver/driver.rs:73
             at librustdoc/core.rs:389
  27: <scoped_tls::ScopedKey<T>>::set
             at librustdoc/lib.rs:704
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
             at /checkout/src/libsyntax/lib.rs:108
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
  28: syntax::with_globals
             at /checkout/src/libsyntax/lib.rs:107
  29: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at librustdoc/lib.rs:700
             at /checkout/src/librustc_driver/lib.rs:1660
             at /checkout/src/libstd/panic.rs:313
  30: std::panicking::try::do_call
             at /checkout/src/libstd/panicking.rs:310
  31: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:103
  32: rustc_driver::monitor
             at /checkout/src/libstd/panicking.rs:289
             at /checkout/src/libstd/panic.rs:392
             at /checkout/src/librustc_driver/lib.rs:1574
             at /checkout/src/librustc_driver/lib.rs:1585
             at /checkout/src/librustc_driver/lib.rs:1659
  33: rustdoc::rust_input
             at librustdoc/lib.rs:700
  34: rustdoc::main_args
             at librustdoc/lib.rs:606
             at librustdoc/lib.rs:561
  35: <scoped_tls::ScopedKey<T>>::set
             at librustdoc/lib.rs:114
             at /checkout/src/libcore/option.rs:414
             at librustdoc/lib.rs:114
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
             at /checkout/src/libsyntax/lib.rs:108
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.30.0-nightly (2d4e34ca8 2018-09-09) running on x86_64-unknown-linux-gnu

error: Could not document `rust-orgmode-derive`.

Caused by:
  process didn't exit successfully: `rustdoc --crate-name rust_orgmode_derive rust-orgmode-derive/src/lib.rs -o /home/ms/Repositories/rust-orgmode/target/doc -L dependency=/home/ms/Repositories/rust-orgmode/target/debug/deps --extern proc_macro2=/home/ms/Repositories/rust-orgmode/target/debug/deps/libproc_macro2-2a0be5cad0cff56a.rmeta --extern quote=/home/ms/Repositories/rust-orgmode/target/debug/deps/libquote-e88e473e5c853f90.rmeta --extern syn=/home/ms/Repositories/rust-orgmode/target/debug/deps/libsyn-2a9b333a8e49d3d1.rmeta` (exit code: 1)

Metadata

Metadata

Assignees

No one assigned

    Labels

    I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions