Closed
Description
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