Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NLL compiler panic - "cannot convert <type> to a region vid" #51676

Closed
foo-jin opened this issue Jun 21, 2018 · 1 comment
Closed

NLL compiler panic - "cannot convert <type> to a region vid" #51676

foo-jin opened this issue Jun 21, 2018 · 1 comment
Labels
A-NLL Area: Non-lexical lifetimes (NLL) C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@foo-jin
Copy link

foo-jin commented Jun 21, 2018

I tried the following:

fn simple_directions<'a> () {
    let s: &'a str = "U";
    ...
}

I expected the compiler to either accept or reject this program, but instead it panicked.

Meta

rustc --version --verbose:
rustc 1.28.0-nightly (ae46aef 2018-06-16)
binary: rustc
commit-hash: ae46aef
commit-date: 2018-06-16
host: x86_64-unknown-linux-gnu
release: 1.28.0-nightly
LLVM version: 6.0

Backtrace:
error: internal compiler error: librustc_mir/borrow_check/nll/universal_regions.rs:825: cannot convert ReFree(DefId(0/0:507 ~ adventofcode[52d2]::sixteen[0]::day2[0]::parsing[0]::test[0]), BrNamed(crate0:DefIndex(1:157), 'a)) to a region vid
thread 'main' panicked at 'Box', librustc_errors/lib.rs:554: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: rustc::util::common::panic_hook
5: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:515
6: std::panicking::begin_panic
7: rustc_errors::Handler::bug
8: rustc::session::opt_span_bug_fmt::{{closure}}
9: rustc::ty::context::tls::with_opt::{{closure}}
10: rustc::ty::context::tls::with_context_opt
11: rustc::ty::context::tls::with_opt
12: rustc::session::opt_span_bug_fmt
13: rustc::session::bug_fmt
14: rustc_mir::borrow_check::nll::universal_regions::UniversalRegionIndices::to_region_vid::{{closure}}
15: rustc_mir::borrow_check::nll::universal_regions::UniversalRegionIndices::to_region_vid
16: rustc_mir::borrow_check::nll::subtype_constraint_generation::generate
17: rustc_mir::borrow_check::nll::compute_regions
18: rustc_mir::borrow_check::do_mir_borrowck
19: rustc::ty::context::GlobalCtxt::enter_local
20: rustc_mir::borrow_check::mir_borrowck
21: rustc::ty::query::__query_compute::mir_borrowck
22: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors<'tcx> for rustc::ty::query::queries::mir_borrowck<'tcx>>::compute
23: rustc::ty::context::tls::with_context
24: rustc::dep_graph::graph::DepGraph::with_task_impl
25: rustc::ty::context::tls::with_related_context
26: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::force_query_with_job
27: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::get_query
28: rustc::ty::query::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::mir_borrowck
29: rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::{{closure}}
30: rustc::util::common::time
31: rustc::ty::context::tls::enter_context
32: <std::thread::local::LocalKey>::with
33: rustc::ty::context::TyCtxt::create_and_enter
34: rustc_driver::driver::compile_input
35: rustc_driver::run_compiler_with_pool
36: <scoped_tls::ScopedKey>::set
37: syntax::with_globals
38: <std::panic::AssertUnwindSafe as core::ops::function::FnOnce<()>>::call_once
39: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:105
40: rustc_driver::run
41: rustc_driver::main
42: std::rt::lang_start::{{closure}}
43: std::panicking::try::do_call
at libstd/rt.rs:59
at libstd/panicking.rs:310
44: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:105
45: std::rt::lang_start_internal
at libstd/panicking.rs:289
at libstd/panic.rs:392
at libstd/rt.rs:58
46: main
47: __libc_start_main
48:
query stack during panic:
#0 [mir_borrowck] processing sixteen::day2::parsing::test::simple_directions
end of query stack
error: aborting due to 2 previous errors
For more information about this error, try rustc --explain E0597.

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.28.0-nightly (ae46aef 2018-06-16) running on x86_64-unknown-linux-gnu

note: compiler flags: -C debuginfo=2 -C incremental

note: some of the compiler flags provided by cargo are hidden

@kennytm kennytm added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ A-NLL Area: Non-lexical lifetimes (NLL) C-bug Category: This is a bug. WG-compiler-nll labels Jun 21, 2018
@kennytm
Copy link
Member

kennytm commented Jun 21, 2018

Thanks for the report. I believe this is a duplicate of #51351.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-NLL Area: Non-lexical lifetimes (NLL) C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

2 participants