Skip to content

src/librustc/hir/def.rs:271: attempted .def_id() on invalid def: Err #61732

Description

@little-dude

Rust version affected

Both stable and nightly:

rustc 1.35.0 (3c235d560 2019-05-20)
rustc 1.37.0-nightly (02564de47 2019-06-10)

How to reproduce

Run cargo doc on this code:

git@github.com:little-dude/xrl.git
cd xrl
git checkout unbox
cargo doc  # note that `cargo build`, `cargo test`, `cargo check` and `cargo clippy` work fine

Stacktrace

error: internal compiler error: src/librustc/hir/def.rs:271: attempted .def_id() on invalid def: Err

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:635:9
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 src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:197
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:478
   5: std::panicking::begin_panic
   6: rustc_errors::Handler::bug
   7: rustc::util::bug::opt_span_bug_fmt::{{closure}}
   8: rustc::ty::context::tls::with_opt::{{closure}}
   9: rustc::ty::context::tls::with_context_opt
  10: rustc::ty::context::tls::with_opt
  11: rustc::util::bug::opt_span_bug_fmt
  12: rustc::util::bug::bug_fmt
  13: rustc::hir::def::Def::def_id::{{closure}}
  14: rustc::hir::def::Def::def_id
  15: rustdoc::clean::register_def
             at src/librustdoc/clean/mod.rs:4219
  16: <rustc::hir::ImplItem as rustdoc::clean::Clean<rustdoc::clean::Item>>::clean
             at src/librustdoc/clean/mod.rs:3196
             at src/librustdoc/clean/mod.rs:2269
  17: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
             at src/librustdoc/clean/mod.rs:125
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/slice/mod.rs:3150
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/traits/iterator.rs:604
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1852
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1835
  18: <rustdoc::doctree::Impl as rustdoc::clean::Clean<alloc::vec::Vec<rustdoc::clean::Item>>>::clean
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1721
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/traits/iterator.rs:1465
             at src/librustdoc/clean/mod.rs:125
             at src/librustdoc/clean/mod.rs:3815
  19: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::spec_extend
             at src/librustdoc/clean/mod.rs:627
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/ops/function.rs:279
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/option.rs:414
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:568
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/flatten.rs:218
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/flatten.rs:48
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1929
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1826
  20: <rustdoc::doctree::Module as rustdoc::clean::Clean<rustdoc::clean::Item>>::clean
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1790
             at src/librustdoc/clean/mod.rs:627
  21: <rustdoc::doctree::Module as rustdoc::clean::Clean<rustdoc::clean::Item>>::clean
             at src/librustdoc/clean/mod.rs:621
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/slice/mod.rs:3150
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/traits/iterator.rs:604
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1852
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1790
             at src/librustdoc/clean/mod.rs:621
  22: <rustdoc::doctree::Module as rustdoc::clean::Clean<rustdoc::clean::Item>>::clean
             at src/librustdoc/clean/mod.rs:621
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/slice/mod.rs:3150
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/adapters/mod.rs:587
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/iter/traits/iterator.rs:604
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1852
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/vec.rs:1790
             at src/librustdoc/clean/mod.rs:621
  23: <rustdoc::visit_ast::RustdocVisitor as rustdoc::clean::Clean<rustdoc::clean::Crate>>::clean
             at src/librustdoc/clean/mod.rs:164
  24: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
             at src/librustdoc/core.rs:512
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/passes.rs:804
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:2004
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1971
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1904
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1970
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:2003
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/passes.rs:804
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e//<::rustc_data_structures::box_region::declare_box_region_type macros>:17
  25: rustc_interface::passes::create_global_ctxt::{{closure}}
  26: rustdoc::rust_input::{{closure}}
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/liballoc/boxed.rs:907
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_data_structures/box_region.rs:52
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e//<::rustc_data_structures::box_region::declare_box_region_type macros>:19
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/passes.rs:804
             at src/librustdoc/core.rs:465
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/interface.rs:120
             at src/librustdoc/core.rs:451
             at src/librustdoc/lib.rs:450
  27: std::panicking::try::do_call
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/panic.rs:309
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/panicking.rs:293
  28: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:87
  29: rustc_driver::report_ices_to_stderr_if_any
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/panicking.rs:272
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/panic.rs:388
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_driver/lib.rs:1114
  30: rustdoc::main_args
             at src/librustdoc/lib.rs:447
             at src/librustdoc/lib.rs:404
  31: std::thread::local::LocalKey<T>::with
             at src/librustdoc/lib.rs:98
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libcore/option.rs:414
             at src/librustdoc/lib.rs:98
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/util.rs:186
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1959
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/thread/local.rs:299
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/thread/local.rs:245
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1951
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/thread/local.rs:299
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libstd/thread/local.rs:245
  32: scoped_tls::ScopedKey<T>::set
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc/ty/context.rs:1943
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/util.rs:186
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/librustc_interface/util.rs:182
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libsyntax/lib.rs:101
             at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
  33: syntax::with_globals
             at /rustc/3c235d5600393dfe6c36eeed34042efad8d4f26e/src/libsyntax/lib.rs:100
error: aborting due to previous error


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.35.0 (3c235d560 2019-05-20) running on x86_64-unknown-linux-gnu

error: Could not document `xrl`.

Caused by:
  process didn't exit successfully: `rustdoc --edition=2018 --crate-name xrl src/lib.rs --color always -o /home/corentin/code/rust/xrl/target/doc -L dependency=/home/corentin/code/rust/xrl/target/debug/deps --extern bytes=/home/corentin/code/rust/xrl/target/debug/deps/libbytes-108147dcc8a98bf1.rmeta --extern futures=/home/corentin/code/rust/xrl/target/debug/deps/libfutures-cff790ae6a3349be.rmeta --extern log=/home/corentin/code/rust/xrl/target/debug/deps/liblog-a8de2cbee05dee45.rmeta --extern serde=/home/corentin/code/rust/xrl/target/debug/deps/libserde-f4ecaf05341de282.rmeta --extern serde_derive=/home/corentin/code/rust/xrl/target/debug/deps/libserde_derive-c80992fe8c56822b.so --extern serde_json=/home/corentin/code/rust/xrl/target/debug/deps/libserde_json-ec94a732172a058b.rmeta --extern syntect=/home/corentin/code/rust/xrl/target/debug/deps/libsyntect-cb5e37e398c2ed09.rmeta --extern tokio=/home/corentin/code/rust/xrl/target/debug/deps/libtokio-1d7926ccc99d0bfa.rmeta --extern tokio_codec=/home/corentin/code/rust/xrl/target/debug/deps/libtokio_codec-3edc61048161bb42.rmeta --extern tokio_process=/home/corentin/code/rust/xrl/target/debug/deps/libtokio_process-3237d53038e010b9.rmeta` (exit code: 1)

Potentially related issue: #54320, although here it happens only with cargo doc not cargo build

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions