Skip to content

ICE: cannot convert ReFree to a region vid #111433

Description

@matthiaskrgr

Code

./tests/ui/const-generics/late-bound-vars/simple.rs

#![feature(generic_const_exprs)]
#![allow(incomplete_features)]

const fn inner<'a>() -> usize where &'a (): Sized {
    3
}

fn test<'a>() {
    let _: [u8; inner::<'a>()];
    let _ = [0; inner::<'a>()];
}

fn main() {
    test();
}

Meta

rustc --version --verbose:

rustc 1.71.0-nightly (2f6bc5d25 2023-05-09)
binary: rustc
commit-hash: 2f6bc5d259e7ab25ddfdd33de53b892770218918
commit-date: 2023-05-09
host: x86_64-unknown-linux-gnu
release: 1.71.0-nightly
LLVM version: 16.0.2

Error output

<output>
Backtrace

error: internal compiler error: compiler/rustc_borrowck/src/universal_regions.rs:882:36: cannot convert `ReFree(DefId(0:5 ~ simple[493b]::test), BrNamed(DefId(0:6 ~ simple[493b]::test::'a), 'a))` to a region vid

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/compiler/rustc_errors/src/lib.rs:1650:9
stack backtrace:
   0:     0x7fe9b4d6a3b1 - std::backtrace_rs::backtrace::libunwind::trace::h6e5b7e23399032cc
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fe9b4d6a3b1 - std::backtrace_rs::backtrace::trace_unsynchronized::h4528c06bee1e0a8b
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fe9b4d6a3b1 - std::sys_common::backtrace::_print_fmt::h8c8479101d563d31
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fe9b4d6a3b1 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf3690daedd46952c
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fe9b4dca80f - core::fmt::rt::Argument::fmt::h79448537abb02c02
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/core/src/fmt/rt.rs:138:9
   5:     0x7fe9b4dca80f - core::fmt::write::hb7b70c241601eb54
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/core/src/fmt/mod.rs:1094:21
   6:     0x7fe9b4d5d611 - std::io::Write::write_fmt::h2b40bdf00a46cf42
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/io/mod.rs:1712:15
   7:     0x7fe9b4d6a1c5 - std::sys_common::backtrace::_print::h264fd8ac10e4d719
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fe9b4d6a1c5 - std::sys_common::backtrace::print::h6190a4e08057accf
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fe9b4d6ce47 - std::panicking::default_hook::{{closure}}::h1fcb6a5fbc17c145
  10:     0x7fe9b4d6cc34 - std::panicking::default_hook::h1d4472ea1534e7eb
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/panicking.rs:288:9
  11:     0x7fe9b7fd3cdb - <rustc_driver_impl[ce322c91000f3e2b]::install_ice_hook::{closure#0} as core[7de8eb2b24556be4]::ops::function::FnOnce<(&core[7de8eb2b24556be4]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  12:     0x7fe9b4d6d567 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h05757514719e9e39
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/alloc/src/boxed.rs:1999:9
  13:     0x7fe9b4d6d567 - std::panicking::rust_panic_with_hook::h26983c5985cc3d7d
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/panicking.rs:695:13
  14:     0x7fe9b84c1321 - std[bc31d8d7a4b25d9b]::panicking::begin_panic::<rustc_errors[f17d5d6c3485e527]::ExplicitBug>::{closure#0}
  15:     0x7fe9b84beea6 - std[bc31d8d7a4b25d9b]::sys_common::backtrace::__rust_end_short_backtrace::<std[bc31d8d7a4b25d9b]::panicking::begin_panic<rustc_errors[f17d5d6c3485e527]::ExplicitBug>::{closure#0}, !>
  16:     0x7fe9b84beb46 - std[bc31d8d7a4b25d9b]::panicking::begin_panic::<rustc_errors[f17d5d6c3485e527]::ExplicitBug>
  17:     0x7fe9b84b99e4 - <rustc_errors[f17d5d6c3485e527]::HandlerInner>::bug::<alloc[62a5dcc9069c15c8]::string::String>
  18:     0x7fe9b84b9716 - <rustc_errors[f17d5d6c3485e527]::Handler>::bug::<alloc[62a5dcc9069c15c8]::string::String>
  19:     0x7fe9b85521ec - rustc_middle[b96152969e862739]::util::bug::opt_span_bug_fmt::<rustc_span[feb72a2200ed999]::span_encoding::Span>::{closure#0}
  20:     0x7fe9b8551b2a - rustc_middle[b96152969e862739]::ty::context::tls::with_opt::<rustc_middle[b96152969e862739]::util::bug::opt_span_bug_fmt<rustc_span[feb72a2200ed999]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7fe9b8551afa - rustc_middle[b96152969e862739]::ty::context::tls::with_context_opt::<rustc_middle[b96152969e862739]::ty::context::tls::with_opt<rustc_middle[b96152969e862739]::util::bug::opt_span_bug_fmt<rustc_span[feb72a2200ed999]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7fe9b6207a3d - rustc_middle[b96152969e862739]::util::bug::bug_fmt
  23:     0x7fe9b6fb2da3 - <rustc_borrowck[870b2eadfe30ec99]::type_check::constraint_conversion::ConstraintConversion>::convert_all
  24:     0x7fe9b6f23c85 - <rustc_borrowck[870b2eadfe30ec99]::type_check::TypeChecker>::ascribe_user_type
  25:     0x7fe9b6f1af86 - rustc_borrowck[870b2eadfe30ec99]::nll::compute_regions
  26:     0x7fe9b6ec82bc - rustc_borrowck[870b2eadfe30ec99]::do_mir_borrowck
  27:     0x7fe9b6ec4a12 - rustc_borrowck[870b2eadfe30ec99]::mir_borrowck
  28:     0x7fe9b6ec2dc8 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::mir_borrowck, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  29:     0x7fe9b6ec2ab0 - rustc_query_impl[ff2244d0f49f60a1]::get_query::mir_borrowck
  30:     0x7fe9b69e5180 - rustc_mir_transform[30e93fa49ed080f7]::mir_drops_elaborated_and_const_checked
  31:     0x7fe9b69e30c8 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::mir_drops_elaborated_and_const_checked, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  32:     0x7fe9b69e2af0 - rustc_query_impl[ff2244d0f49f60a1]::get_query::mir_drops_elaborated_and_const_checked
  33:     0x7fe9b6ca6a4c - rustc_mir_transform[30e93fa49ed080f7]::mir_for_ctfe
  34:     0x7fe9b7444cd8 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::mir_for_ctfe, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  35:     0x7fe9b744485f - rustc_query_impl[ff2244d0f49f60a1]::get_query::mir_for_ctfe
  36:     0x7fe9b6490ec0 - <rustc_const_eval[3aaa2df1d62119a5]::interpret::eval_context::InterpCx<rustc_const_eval[3aaa2df1d62119a5]::const_eval::machine::CompileTimeInterpreter>>::load_mir
  37:     0x7fe9b63a8c11 - rustc_const_eval[3aaa2df1d62119a5]::const_eval::eval_queries::eval_to_allocation_raw_provider
  38:     0x7fe9b7301355 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::eval_to_allocation_raw, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  39:     0x7fe9b7300f8f - rustc_query_impl[ff2244d0f49f60a1]::get_query::eval_to_allocation_raw
  40:     0x7fe9b63a91fa - rustc_const_eval[3aaa2df1d62119a5]::const_eval::eval_queries::eval_to_allocation_raw_provider
  41:     0x7fe9b7301355 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::eval_to_allocation_raw, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  42:     0x7fe9b7300f8f - rustc_query_impl[ff2244d0f49f60a1]::get_query::eval_to_allocation_raw
  43:     0x7fe9b771d353 - rustc_const_eval[3aaa2df1d62119a5]::const_eval::eval_to_valtree
  44:     0x7fe9b771d1e0 - <rustc_const_eval[3aaa2df1d62119a5]::provide::{closure#0} as core[7de8eb2b24556be4]::ops::function::FnOnce<(rustc_middle[b96152969e862739]::ty::context::TyCtxt, rustc_middle[b96152969e862739]::ty::ParamEnvAnd<rustc_middle[b96152969e862739]::mir::interpret::GlobalId>)>>::call_once
  45:     0x7fe9b7670da2 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::eval_to_valtree, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  46:     0x7fe9b76709b5 - rustc_query_impl[ff2244d0f49f60a1]::get_query::eval_to_valtree
  47:     0x7fe9b623f880 - rustc_middle[b96152969e862739]::ty::query::query_get_at::<rustc_query_system[180594c788319d08]::query::caches::DefaultCache<rustc_middle[b96152969e862739]::ty::ParamEnvAnd<rustc_middle[b96152969e862739]::mir::interpret::GlobalId>, rustc_middle[b96152969e862739]::query::erase::Erased<[u8; 24usize]>>>
  48:     0x7fe9b623f567 - <rustc_middle[b96152969e862739]::ty::context::TyCtxt>::const_eval_global_id_for_typeck
  49:     0x7fe9b623f11c - <rustc_middle[b96152969e862739]::ty::context::TyCtxt>::const_eval_resolve_for_typeck
  50:     0x7fe9b657df10 - <rustc_middle[b96152969e862739]::ty::consts::kind::ConstKind>::eval
  51:     0x7fe9b6500146 - <rustc_hir_typeck[8b356db618624f6b]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  52:     0x7fe9b654814a - <rustc_hir_typeck[8b356db618624f6b]::fn_ctxt::FnCtxt>::check_decl
  53:     0x7fe9b6543eb2 - <rustc_hir_typeck[8b356db618624f6b]::fn_ctxt::FnCtxt>::check_block_with_expected
  54:     0x7fe9b64fb789 - <rustc_hir_typeck[8b356db618624f6b]::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
  55:     0x7fe9b66384e6 - <rustc_hir_typeck[8b356db618624f6b]::fn_ctxt::FnCtxt>::check_return_expr
  56:     0x7fe9b663015e - rustc_hir_typeck[8b356db618624f6b]::check::check_fn
  57:     0x7fe9b6616fa3 - rustc_hir_typeck[8b356db618624f6b]::typeck
  58:     0x7fe9b660cad2 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::typeck, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  59:     0x7fe9b7024d63 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::used_trait_imports, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  60:     0x7fe9b74a1239 - rustc_hir_analysis[90d331eccd9fdd4d]::check_crate
  61:     0x7fe9b7495520 - rustc_interface[10d1c68131cce565]::passes::analysis
  62:     0x7fe9b774a407 - rustc_query_system[180594c788319d08]::query::plumbing::try_execute_query::<rustc_query_impl[ff2244d0f49f60a1]::queries::analysis, rustc_query_impl[ff2244d0f49f60a1]::plumbing::QueryCtxt>
  63:     0x7fe9b774a123 - rustc_query_impl[ff2244d0f49f60a1]::get_query::analysis
  64:     0x7fe9b71e05cf - <rustc_middle[b96152969e862739]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[ce322c91000f3e2b]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>>
  65:     0x7fe9b71df6af - <rustc_interface[10d1c68131cce565]::interface::Compiler>::enter::<rustc_driver_impl[ce322c91000f3e2b]::run_compiler::{closure#1}::{closure#2}, core[7de8eb2b24556be4]::result::Result<core[7de8eb2b24556be4]::option::Option<rustc_interface[10d1c68131cce565]::queries::Linker>, rustc_span[feb72a2200ed999]::ErrorGuaranteed>>
  66:     0x7fe9b71dcd3b - std[bc31d8d7a4b25d9b]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[10d1c68131cce565]::util::run_in_thread_pool_with_globals<rustc_interface[10d1c68131cce565]::interface::run_compiler<core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>, rustc_driver_impl[ce322c91000f3e2b]::run_compiler::{closure#1}>::{closure#0}, core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>>
  67:     0x7fe9b78b5155 - <<std[bc31d8d7a4b25d9b]::thread::Builder>::spawn_unchecked_<rustc_interface[10d1c68131cce565]::util::run_in_thread_pool_with_globals<rustc_interface[10d1c68131cce565]::interface::run_compiler<core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>, rustc_driver_impl[ce322c91000f3e2b]::run_compiler::{closure#1}>::{closure#0}, core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7de8eb2b24556be4]::result::Result<(), rustc_span[feb72a2200ed999]::ErrorGuaranteed>>::{closure#1} as core[7de8eb2b24556be4]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  68:     0x7fe9b4d77a15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hdc6a7ff0c7f1614a
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/alloc/src/boxed.rs:1985:9
  69:     0x7fe9b4d77a15 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf73467eae757427c
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/alloc/src/boxed.rs:1985:9
  70:     0x7fe9b4d77a15 - std::sys::unix::thread::Thread::new::thread_start::h747e49fa31477839
                               at /rustc/cba14074bb4cc12bfe918eabd0d52a3999b2a461/library/std/src/sys/unix/thread.rs:108:17
  71:     0x7fe9b4b14bb5 - <unknown>
  72:     0x7fe9b4b96d90 - <unknown>
  73:                0x0 - <unknown>

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.71.0-nightly (cba14074b 2023-05-10) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_borrowck] borrow-checking `test::{constant#1}`
#1 [mir_drops_elaborated_and_const_checked] elaborating drops for `test::{constant#1}`
#2 [mir_for_ctfe] caching mir of `test::{constant#1}` for CTFE
#3 [eval_to_allocation_raw] const-evaluating + checking `test::{constant#1}`
#4 [eval_to_allocation_raw] const-evaluating + checking `test::{constant#1}`
#5 [eval_to_valtree] evaluating type-level constant
#6 [typeck] type-checking `test`
#7 [used_trait_imports] finding used_trait_imports `test`
#8 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-const-genericsArea: const generics (parameters and arguments)C-bugCategory: This is a bug.F-generic_const_exprs`#![feature(generic_const_exprs)]`I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions