Skip to content

ICE: Region parameter out of range when substituting in region '_ (index=0) glacier fixed/69487-1.rs #88433

Closed
@matthiaskrgr

Description

@matthiaskrgr

Code

code from glacier/fixed/69487-1.rs

#![feature(const_trait_impl)]
#![feature(fn_traits)]
#![feature(unboxed_closures)]

struct Closure;

impl const FnOnce<&usize> for Closure {
    type Output = usize;

    extern "rust-call" fn call_once(self, arg: &usize) -> Self::Output {
        *arg
    }
}

enum Bug<T = [(); Closure.call_once(&0) ]> {
    V(T),
}

fn main() {}

Meta

rustc --version --verbose:

rustc 1.56.0-nightly (42a2a53ec 2021-08-28)
binary: rustc
commit-hash: 42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92
commit-date: 2021-08-28
host: x86_64-unknown-linux-gnu
release: 1.56.0-nightly
LLVM version: 13.0.0

Error output

error: internal compiler error: compiler/rustc_middle/src/ty/subst.rs:480:25: Region parameter out of range when substituting in region '_ (index=0)

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/compiler/rustc_errors/src/lib.rs:1093:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

note: the compiler unexpectedly panicked. this is a bug.

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.56.0-nightly (42a2a53ec 2021-08-28) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [resolve_instance] resolving instance `<impl at ./69487-1.rs:7:1: 13:2>::call_once`
#1 [mir_const_qualif] const checking `Bug::{constant#0}`
end of query stack
Backtrace

error: internal compiler error: compiler/rustc_middle/src/ty/subst.rs:480:25: Region parameter out of range when substituting in region '_ (index=0)

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/compiler/rustc_errors/src/lib.rs:1093:9
stack backtrace:
   0:     0x7fba4faf326c - std::backtrace_rs::backtrace::libunwind::trace::hf16bab017f241aa7
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
   1:     0x7fba4faf326c - std::backtrace_rs::backtrace::trace_unsynchronized::hfc27e8424e499412
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fba4faf326c - std::sys_common::backtrace::_print_fmt::h5be1efcd85b410a6
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/sys_common/backtrace.rs:67:5
   3:     0x7fba4faf326c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h73cf7b443adc9274
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/sys_common/backtrace.rs:46:22
   4:     0x7fba4fb50f3c - core::fmt::write::h9a6d9c74526a6c1b
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/core/src/fmt/mod.rs:1150:17
   5:     0x7fba4fae4305 - std::io::Write::write_fmt::hb955fdedb1f691a8
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/io/mod.rs:1667:15
   6:     0x7fba4faf67c0 - std::sys_common::backtrace::_print::hd5ba2c14c2d68f09
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/sys_common/backtrace.rs:49:5
   7:     0x7fba4faf67c0 - std::sys_common::backtrace::print::h3b3d8e691bd3d5e8
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/sys_common/backtrace.rs:36:9
   8:     0x7fba4faf67c0 - std::panicking::default_hook::{{closure}}::h703c292cd78e95a9
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/panicking.rs:210:50
   9:     0x7fba4faf637b - std::panicking::default_hook::h23aea4a9b2140559
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/panicking.rs:227:9
  10:     0x7fba502c8f41 - rustc_driver::DEFAULT_HOOK::{{closure}}::{{closure}}::hfc7f4e708637f032
  11:     0x7fba4faf6fd9 - std::panicking::rust_panic_with_hook::hde97eb7782db5504
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/panicking.rs:628:17
  12:     0x7fba5125a31b - std::panicking::begin_panic::{{closure}}::hc7e931d8cf1ce937
  13:     0x7fba5125a236 - std::sys_common::backtrace::__rust_end_short_backtrace::h159c3a655afcac75
  14:     0x7fba511c0a0f - std::panicking::begin_panic::hcfa8f7084d2ad744
  15:     0x7fba511d94fd - std::panic::panic_any::hc492258cd10579b6
  16:     0x7fba511d8f85 - rustc_errors::HandlerInner::span_bug::hd7521de3929de86f
  17:     0x7fba511d94a0 - rustc_errors::Handler::span_bug::h56da3dbfc169dc20
  18:     0x7fba5126472a - rustc_middle::ty::context::tls::with_opt::h041c52acf5b20d1a
  19:     0x7fba51264af0 - rustc_middle::util::bug::opt_span_bug_fmt::hc0456f9ed0e76496
  20:     0x7fba51264abc - rustc_middle::util::bug::span_bug_fmt::h49ae480aa673b7bc
  21:     0x7fba51d58243 - <rustc_middle::ty::subst::SubstFolder as rustc_middle::ty::fold::TypeFolder>::fold_region::h742cc6da933d9469
  22:     0x7fba51d5535a - rustc_middle::ty::fold::TypeFoldable::fold_with::hff490c08ce6aeb68
  23:     0x7fba51d2d453 - rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with::h0f482dea181f39b3
  24:     0x7fba515d6ac3 - rustc_ty_utils::instance::inner_resolve_instance::hdfb93f0bd43749b2
  25:     0x7fba515d60df - rustc_ty_utils::instance::resolve_instance::hd0a8ff259fd0df63
  26:     0x7fba51950be2 - rustc_query_system::query::plumbing::get_query_impl::h3cec1d0b00a2ad61
  27:     0x7fba519e38a3 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::resolve_instance::hfad9aa3b7a9c0fb8
  28:     0x7fba51d319d7 - rustc_middle::ty::instance::Instance::resolve_opt_const_arg::h4de89db76e91555f
  29:     0x7fba51d2cc99 - rustc_middle::ty::instance::Instance::resolve::h0bb09f1467c97646
  30:     0x7fba522559ea - <rustc_mir::transform::check_consts::check::Checker as rustc_middle::mir::visit::Visitor>::visit_terminator::hca0476447cea4e12
  31:     0x7fba518aa77b - rustc_mir::transform::check_consts::check::Checker::check_body::h30295f0d1eb385f8
  32:     0x7fba517b67ff - rustc_mir::transform::mir_const_qualif::hd70b38d2e8fbea2f
  33:     0x7fba517a31b6 - core::ops::function::FnOnce::call_once::h1da685a90e50a866
  34:     0x7fba5194618c - rustc_query_system::query::plumbing::get_query_impl::h0f7ec824728a4d7f
  35:     0x7fba519e0129 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::mir_const_qualif::hde21fc8a6d87d704
  36:     0x7fba517a0978 - rustc_middle::mir::query::<impl rustc_middle::ty::context::TyCtxt>::mir_const_qualif_opt_const_arg::ha640696eb4bf0061
  37:     0x7fba517a8294 - rustc_mir::const_eval::eval_queries::eval_to_allocation_raw_provider::h94bca15ee5206564
  38:     0x7fba51957ea0 - rustc_query_system::query::plumbing::get_query_impl::h6228d963b6d64d0c
  39:     0x7fba519e16ac - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::eval_to_allocation_raw::h8097b3c3f4480b12
  40:     0x7fba517a72c5 - rustc_mir::const_eval::eval_queries::eval_to_const_value_raw_provider::h8774c483fb3933eb
  41:     0x7fba5196b102 - rustc_query_system::query::plumbing::get_query_impl::hce7fd64c8727349b
  42:     0x7fba519e17d0 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::eval_to_const_value_raw::h4f495444d54b0e76
  43:     0x7fba517a6e8b - rustc_mir::const_eval::eval_queries::eval_to_const_value_raw_provider::h8774c483fb3933eb
  44:     0x7fba5196b102 - rustc_query_system::query::plumbing::get_query_impl::hce7fd64c8727349b
  45:     0x7fba519e17d0 - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::eval_to_const_value_raw::h4f495444d54b0e76
  46:     0x7fba51cd24b5 - rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_global_id::h16ace0211d0ade42
  47:     0x7fba527463d4 - rustc_middle::mir::interpret::queries::<impl rustc_middle::ty::context::TyCtxt>::const_eval_resolve::hc02bca22ee0011e5
  48:     0x7fba526c9d22 - <rustc_trait_selection::traits::project::AssocTypeNormalizer as rustc_middle::ty::fold::TypeFolder>::fold_const::h1ad499036d67aad6
  49:     0x7fba51c3c921 - rustc_middle::ty::structural_impls::<impl rustc_middle::ty::fold::TypeFoldable for &rustc_middle::ty::TyS>::super_fold_with::hbedf45ed1761fd86
  50:     0x7fba5156cbf3 - rustc_middle::ty::fold::TypeFoldable::fold_with::h48edef78f82c3e89
  51:     0x7fba5156cf11 - rustc_middle::ty::fold::TypeFoldable::fold_with::h49fca19efe52de89
  52:     0x7fba520748de - rustc_trait_selection::traits::project::AssocTypeNormalizer::fold::h4613e4a22a07680a
  53:     0x7fba52074d97 - rustc_trait_selection::traits::project::normalize::h146879fb2e02522f
  54:     0x7fba52055f91 - <rustc_infer::infer::InferCtxt as rustc_trait_selection::infer::InferCtxtExt>::partially_normalize_associated_types_in::h16ebfa05adbac732
  55:     0x7fba5151c237 - rustc_typeck::check::wfcheck::check_where_clauses::h0c6bd8c0d1bdb982
  56:     0x7fba52048c22 - rustc_infer::infer::InferCtxtBuilder::enter::h97acd2b71096b0ae
  57:     0x7fba51519f6d - rustc_typeck::check::wfcheck::check_item_well_formed::h76c101d5daa714fa
  58:     0x7fba51973f39 - rustc_query_system::query::plumbing::get_query_impl::hef48ef938ffda69f
  59:     0x7fba519e2a0b - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::check_item_well_formed::hab433991e1bb8b90
  60:     0x7fba5151e9b1 - <rustc_typeck::check::wfcheck::CheckTypeWellFormedVisitor as rustc_hir::intravisit::Visitor>::visit_item::h9dcf363afa027d21
  61:     0x7fba51527ae1 - std::panic::catch_unwind::he9d09f52964b28fb
  62:     0x7fba5157332b - rustc_data_structures::sync::par_for_each_in::hdec0d7d444dcda7b
  63:     0x7fba5201716b - rustc_session::session::Session::track_errors::h455c226fe1feabdf
  64:     0x7fba520af093 - rustc_typeck::check_crate::h11bdbd793759c190
  65:     0x7fba51dde213 - rustc_interface::passes::analysis::hb269babe9466e073
  66:     0x7fba522cb04f - rustc_query_system::query::plumbing::get_query_impl::h57cd2e389f82820b
  67:     0x7fba5242dadd - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis::h71bb1ebf7eea66a8
  68:     0x7fba51dd50c7 - rustc_interface::passes::QueryContext::enter::hd663b8cdd3c6a9b1
  69:     0x7fba51dbc111 - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h06260323cdb48c58
  70:     0x7fba51da928c - rustc_span::with_source_map::he902f9cc4e931296
  71:     0x7fba51dbba48 - scoped_tls::ScopedKey<T>::set::hb252def087903683
  72:     0x7fba51da9a0b - std::sys_common::backtrace::__rust_begin_short_backtrace::h1e0eeab0dccc540c
  73:     0x7fba51da89f5 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h52394afe7007bbd9
  74:     0x7fba4fb03633 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h132ab4ac45190c0c
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/alloc/src/boxed.rs:1636:9
  75:     0x7fba4fb03633 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf5feeb35085fa69e
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/alloc/src/boxed.rs:1636:9
  76:     0x7fba4fb03633 - std::sys::unix::thread::Thread::new::thread_start::h21e4b7c982487240
                               at /rustc/42a2a53ec13b0e6e915acd09a2a9a963e5fa3b92/library/std/src/sys/unix/thread.rs:106:17
  77:     0x7fba4fa0c259 - start_thread
  78:     0x7fba4f9215e3 - __GI___clone
  79:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

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.56.0-nightly (42a2a53ec 2021-08-28) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [resolve_instance] resolving instance `<impl at ./69487-1.rs:7:1: 13:2>::call_once`
#1 [mir_const_qualif] const checking `Bug::{constant#0}`
#2 [eval_to_allocation_raw] const-evaluating + checking `Bug::{constant#0}`
#3 [eval_to_const_value_raw] simplifying constant for the type system `Bug::{constant#0}`
#4 [eval_to_const_value_raw] simplifying constant for the type system `Bug::{constant#0}`
#5 [check_item_well_formed] checking that `Bug` is well-formed
#6 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Metadata

Metadata

Assignees

Labels

C-bugCategory: This is a bug.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.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions