Skip to content

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

New issue

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

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

Already on GitHub? # to your account

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.

# for free to join this conversation on GitHub. Already have an account? # 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