Closed
Description
Compiling the code below with rustc point2.rs -Zsave-analysis
resulted in an internal compiler error.
I've tried to minimize the code. Removing either the derive, the other two structs or fixing the lifetime error in NestedA
makes the panic disappear.
Code
#[derive(Debug)]
struct Point {
}
struct NestedA<'a, 'b> {
x: &'a NestedB<'b>
}
struct NestedB<'a> {
x: &'a i32,
}
fn main() {
}
Output with backtrace
error[E0491]: in type `&'a mut NestedB<'b>`, reference has a longer lifetime than the data it references
--> point2.rs:6:5
|
6 | x: &'a mut NestedB<'b>
| ^^^^^^^^^^^^^^^^^^^^^^
|
note: the pointer is valid for the lifetime 'a as defined on the struct at 5:0
--> point2.rs:5:1
|
5 | struct NestedA<'a, 'b> {
| ^
note: but the referenced data is only valid for the lifetime 'b as defined on the struct at 5:0
--> point2.rs:5:1
|
5 | struct NestedA<'a, 'b> {
| ^
error: internal compiler error: ../src/librustc/ty/mod.rs:2097: node_id_to_type: no type for node `pat Point { } (id=46)`
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: run with `RUST_BACKTRACE=1` for a backtrace
thread 'rustc' panicked at 'Box<Any>', ../src/librustc_errors/lib.rs:656
stack backtrace:
1: 0x106869608 - std::sys::backtrace::tracing::imp::write::h22f199c1dbb72ba2
2: 0x106876f2f - std::panicking::default_hook::{{closure}}::h9a389c462b6a22dd
3: 0x106874355 - std::panicking::default_hook::h852b4223c1c00c59
4: 0x106874a76 - std::panicking::rust_panic_with_hook::hcd9d05f53fa0dafc
5: 0x1067425da - std::panicking::begin_panic::h2f463d37998ebeba
6: 0x10675294a - rustc_errors::Handler::bug::haca77c19c882b432
7: 0x1036f72cc - rustc::session::opt_span_bug_fmt::{{closure}}::hfeb850fbe828b399
8: 0x1036298c9 - rustc::session::opt_span_bug_fmt::h46e45438a860a75e
9: 0x10362967a - rustc::session::bug_fmt::hde22f071bf5a80ea
10: 0x1036ac0e5 - rustc::ty::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::node_id_to_type::h73d18361623a52d0
11: 0x1032b8264 - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, D>>::process_pat::h3b459ce9f62d7503
12: 0x103292ace - syntax::visit::walk_expr::h740e88e7b04dea4f
13: 0x1032ae27e - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, D>>::process_method::h4f6b66158471b107
14: 0x1032bcc29 - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, D>>::process_impl_item::h48d1756270c266fa
15: 0x1032d49b5 - <rustc_save_analysis::dump_visitor::DumpVisitor<'l, 'tcx, 'll, D> as syntax::visit::Visitor>::visit_item::hfd68472f19fd8d39
16: 0x1032ee1ca - rustc_save_analysis::process_crate::h2b636e6f9af828ac
17: 0x10272769b - <rustc_driver::RustcDefaultCalls as rustc_driver::CompilerCalls<'a>>::build_controller::{{closure}}::{{closure}}::hcab3ae4dff1970b7
18: 0x10272c4a1 - <rustc_driver::RustcDefaultCalls as rustc_driver::CompilerCalls<'a>>::build_controller::{{closure}}::h146db60594d89824
19: 0x102728b0f - rustc_driver::driver::compile_input::{{closure}}::h9162a2fa292aeb3f
20: 0x10271c513 - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::h1928c4704cfe9c61
21: 0x1026f0284 - rustc_driver::driver::phase_3_run_analysis_passes::he578df6b8805151c
22: 0x1026d952a - rustc_driver::driver::compile_input::h5b63ccd49eeeb98b
23: 0x102702789 - rustc_driver::run_compiler::h98c7274e7cb1d11d
24: 0x102643558 - std::panicking::try::do_call::h99ed0da044e497c3
25: 0x1068774ea - __rust_maybe_catch_panic
26: 0x102661dcf - <F as alloc::boxed::FnBox<A>>::call_box::hbdd5a14cd8e33b97
27: 0x106873624 - std::sys::thread::Thread::new::thread_start::h50b05608a499d2b2
28: 0x7fff8e037059 - _pthread_body
29: 0x7fff8e036fd6 - _pthread_start
Meta
rustc 1.14.0-nightly (16eeeac78 2016-10-18)
binary: rustc
commit-hash: 16eeeac783d2ede28e09f2a433c612dea309fe33
commit-date: 2016-10-18
host: x86_64-apple-darwin
release: 1.14.0-nightly
LLVM version: 3.9
Also occurs with stable (but exact output above is from nightly):
rustc 1.12.1 (d4f39402a 2016-10-19)
binary: rustc
commit-hash: d4f39402a0c2c2b94ec0375cd7f7f6d7918113cd
commit-date: 2016-10-19
host: x86_64-apple-darwin
release: 1.12.1