Closed
Description
When I attempt to build docs, building the typenum docs throws an ICE.
I tried the following docs command:
cargo +nightly doc --open --all
You can use this repo to reproduce:
https://github.com/jpoler/typenum-ice
I expected the docs to build and open in my browser.
Instead, this happened:
Documenting typenum v1.10.0
error: internal compiler error: librustc/traits/structural_impls.rs:178: impossible case reached
thread '<unnamed>' panicked at 'Box<Any>', librustc_errors/lib.rs:578:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
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 (7e8ca9f8b 2018-08-03) running on x86_64-unknown-linux-gnu
error: Could not document `typenum`.
Caused by:
process didn't exit successfully: `rustdoc --crate-name typenum /home/ash/.cargo/registry/src/github.tiyicn.workers.dev-1ecc6299db9ec823/typenum-1.10.0/src/lib.rs --cap-lints allow -o /home/ash/src-tmp/doc-ice/target/doc -L dependency=/home/ash/src-tmp/doc-ice/target/debug/deps` (exit code: 1)
Backtrace:
thread '<unnamed>' panicked at 'Box<Any>', librustc_errors/lib.rs:578:9
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:475
5: std::panicking::begin_panic
6: rustc_errors::Handler::bug
7: rustc::session::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::session::opt_span_bug_fmt
12: rustc::session::bug_fmt
13: rustc::traits::structural_impls::<impl rustc::ty::context::Lift<'tcx> for rustc::traits::SelectionError<'a>>::lift_to_tcx
14: rustc::ty::context::TyCtxt::lift_to_global
15: rustc::traits::select::SelectionContext::candidate_from_obligation
16: rustc::traits::select::SelectionContext::evaluate_stack
17: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
18: rustc::infer::InferCtxt::probe
19: <&'a mut I as core::iter::iterator::Iterator>::next
20: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
21: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
22: rustc::traits::select::SelectionContext::candidate_from_obligation
23: rustc::traits::select::SelectionContext::evaluate_stack
24: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
25: rustc::infer::InferCtxt::probe
26: <&'a mut I as core::iter::iterator::Iterator>::next
27: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
28: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
29: rustc::traits::select::SelectionContext::candidate_from_obligation
30: rustc::traits::select::SelectionContext::evaluate_stack
31: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
32: rustc::infer::InferCtxt::probe
33: <&'a mut I as core::iter::iterator::Iterator>::next
34: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
35: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
36: rustc::traits::select::SelectionContext::candidate_from_obligation
37: rustc::traits::select::SelectionContext::evaluate_stack
38: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
39: rustc::infer::InferCtxt::probe
40: <&'a mut I as core::iter::iterator::Iterator>::next
41: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
42: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
43: rustc::traits::select::SelectionContext::candidate_from_obligation
44: rustc::traits::select::SelectionContext::evaluate_stack
45: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
46: rustc::infer::InferCtxt::probe
47: <&'a mut I as core::iter::iterator::Iterator>::next
48: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
49: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
50: rustc::traits::select::SelectionContext::candidate_from_obligation
51: rustc::traits::select::SelectionContext::evaluate_stack
52: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
53: rustc::infer::InferCtxt::probe
54: <&'a mut I as core::iter::iterator::Iterator>::next
55: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
56: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
57: rustc::traits::select::SelectionContext::candidate_from_obligation
58: rustc::traits::select::SelectionContext::evaluate_stack
59: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
60: rustc::infer::InferCtxt::probe
61: <&'a mut I as core::iter::iterator::Iterator>::next
62: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
63: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
64: rustc::traits::select::SelectionContext::candidate_from_obligation
65: rustc::traits::select::SelectionContext::evaluate_stack
66: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
67: rustc::infer::InferCtxt::probe
68: <&'a mut I as core::iter::iterator::Iterator>::next
69: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
70: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
71: rustc::traits::select::SelectionContext::candidate_from_obligation
72: rustc::traits::select::SelectionContext::evaluate_stack
73: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
74: rustc::infer::InferCtxt::probe
75: <&'a mut I as core::iter::iterator::Iterator>::next
76: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
77: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
78: rustc::traits::select::SelectionContext::candidate_from_obligation
79: rustc::traits::select::SelectionContext::evaluate_stack
80: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
81: rustc::infer::InferCtxt::probe
82: <&'a mut I as core::iter::iterator::Iterator>::next
83: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
84: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
85: rustc::traits::select::SelectionContext::candidate_from_obligation
86: rustc::traits::select::SelectionContext::evaluate_stack
87: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
88: rustc::infer::InferCtxt::probe
89: <&'a mut I as core::iter::iterator::Iterator>::next
90: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
91: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
92: rustc::traits::select::SelectionContext::candidate_from_obligation
93: rustc::traits::select::SelectionContext::evaluate_stack
94: rustc::traits::select::SelectionContext::evaluate_predicate_recursively
95: rustc::infer::InferCtxt::probe
96: <&'a mut I as core::iter::iterator::Iterator>::next
97: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T, I>>::from_iter
98: rustc::traits::select::SelectionContext::candidate_from_obligation_no_cache
99: rustc::traits::select::SelectionContext::candidate_from_obligation