Closed
Description
After upgrading to 1.36 rustdoc is crashing like this when run on my crate:
thread 'rustc' panicked at 'unexpected item body MaybeEmphasis(2, true, false)', /work/toolchain/packages/rust/rustc-1.36.0-src/vendor/pulldown-cmark/src/parse.rs:2418:14
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
at src/libstd/sys_common/backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
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::continue_panic_fmt
at src/libstd/panicking.rs:381
6: std::panicking::begin_panic_fmt
at src/libstd/panicking.rs:336
7: pulldown_cmark::parse::item_to_event
at /work/toolchain/packages/rust/rustc-1.36.0-src/vendor/pulldown-cmark/src/parse.rs:2418
8: <pulldown_cmark::parse::Parser as core::iter::traits::iterator::Iterator>::next
at /work/toolchain/packages/rust/rustc-1.36.0-src/vendor/pulldown-cmark/src/parse.rs:2487
9: rustdoc::html::markdown::find_testable_code
at src/librustdoc/html/markdown.rs:539
10: rustdoc::passes::look_for_tests
at src/librustdoc/passes/mod.rs:338
11: <rustdoc::passes::private_items_doc_tests::PrivateItemDocTestLinter as rustdoc::fold::DocFolder>::fold_item
at src/librustdoc/passes/private_items_doc_tests.rs:35
12: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
at src/librustdoc/fold.rs:51
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1572
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1609
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:812
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1939
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1836
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1831
13: rustdoc::fold::DocFolder::fold_inner_recur
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1731
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1465
at src/librustdoc/fold.rs:100
at src/librustdoc/fold.rs:27
14: <rustdoc::passes::private_items_doc_tests::PrivateItemDocTestLinter as rustdoc::fold::DocFolder>::fold_item
at src/librustdoc/fold.rs:90
at src/librustdoc/passes/private_items_doc_tests.rs:37
15: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
at src/librustdoc/fold.rs:51
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1572
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1609
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:812
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1939
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1836
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1831
13: rustdoc::fold::DocFolder::fold_inner_recur
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1731
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1465
at src/librustdoc/fold.rs:100
at src/librustdoc/fold.rs:27
14: <rustdoc::passes::private_items_doc_tests::PrivateItemDocTestLinter as rustdoc::fold::DocFolder>::fold_item
at src/librustdoc/fold.rs:90
at src/librustdoc/passes/private_items_doc_tests.rs:37
15: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
at src/librustdoc/fold.rs:51
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1572
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:826
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1609
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/adapters/mod.rs:812
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1939
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1836
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1831
16: rustdoc::fold::DocFolder::fold_inner_recur
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/vec.rs:1731
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/iter/traits/iterator.rs:1465
at src/librustdoc/fold.rs:100
at src/librustdoc/fold.rs:27
17: <rustdoc::passes::private_items_doc_tests::PrivateItemDocTestLinter as rustdoc::fold::DocFolder>::fold_item
at src/librustdoc/fold.rs:90
at src/librustdoc/passes/private_items_doc_tests.rs:37
18: rustdoc::passes::private_items_doc_tests::check_private_items_doc_tests
at src/librustdoc/fold.rs:105
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/option.rs:624
at src/librustdoc/fold.rs:105
at src/librustdoc/passes/private_items_doc_tests.rs:27
19: rustc::ty::context::tls::enter_global
at src/librustdoc/core.rs:466
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_interface/passes.rs:807
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:2000
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1967
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1900
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1966
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1999
20: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_interface/passes.rs:807
at /work/toolchain/packages/rust/rustc-1.36.0-src/<::rustc_data_structures::box_region::declare_box_region_type macros>:17
21: rustc_interface::passes::create_global_ctxt::{{closure}}
at src/librustc_interface/passes.rs:873
22: rustc_interface::interface::run_compiler_in_existing_thread_pool
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/liballoc/boxed.rs:910
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_data_structures/box_region.rs:52
at /work/toolchain/packages/rust/rustc-1.36.0-src/<::rustc_data_structures::box_region::declare_box_region_type macros>:19
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_interface/passes.rs:807
at src/librustdoc/core.rs:355
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_interface/interface.rs:122
23: rustdoc::core::run_core
at src/librustdoc/core.rs:341
24: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at src/librustdoc/lib.rs:455
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/panic.rs:315
25: std::panicking::try::do_call
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/panicking.rs:293
26: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:85
27: rustc_driver::report_ices_to_stderr_if_any
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/panicking.rs:272
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/panic.rs:394
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_driver/lib.rs:1115
28: rustdoc::main_args
at src/librustdoc/lib.rs:452
at src/librustdoc/lib.rs:408
29: std::thread::local::LocalKey<T>::with
at src/librustdoc/lib.rs:98
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libcore/option.rs:416
at src/librustdoc/lib.rs:98
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc_interface/util.rs:186
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1955
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/thread/local.rs:299
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/thread/local.rs:245
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/librustc/ty/context.rs:1947
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/thread/local.rs:299
at /work/toolchain/packages/rust/rustc-1.36.0-src/src/libstd/thread/local.rs:245
It doesn't produce the line that caused it to crash and the crate is quite large.
It seems to correspond with perhaps this issue in pulldown-cmark:
pulldown-cmark/pulldown-cmark#306