Closed
Description
Code
#![feature(type_alias_impl_trait)]
struct call_me;
type ReturnType<'a> = impl std::future::Future<Output = u32> + 'a;
type FnType = impl Fn(&u32) -> ReturnType;
impl std::ops::Deref for call_me {
type Target = FnType;
fn deref(&self) -> &Self::Target {
fn inner(val: &u32) -> ReturnType {
async move {
*val * 2
}
}
&inner
}
}
Explicitly giving lifetimes to FnType
with for<'a> FnOnce(&'a u32) -> ReturnType<'a>
and doing the same on inner
does not fix the ICE either.
Meta
Version rustc 1.70.0-nightly (8a73f50d8 2023-03-11)
Error output
error: internal compiler error: compiler/rustc_middle/src/ty/opaque_types.rs:121:17: unexpected region kind in opaque type: RePlaceholder(Placeholder { universe: U3, name: BrNamed(DefId(0:15 ~ playground[419e]::FnType::{opaque#0}::'_), '_) })
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/compiler/rustc_errors/src/lib.rs:1644:9
stack backtrace:
0: 0x7f461097651a - std::backtrace_rs::backtrace::libunwind::trace::h8e11308176f74878
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f461097651a - std::backtrace_rs::backtrace::trace_unsynchronized::h08cc8e766dddc25f
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f461097651a - std::sys_common::backtrace::_print_fmt::h99c527e41798f0e9
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/sys_common/backtrace.rs:65:5
3: 0x7f461097651a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h79914c19e70ec78b
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7f46109d9c5e - core::fmt::write::h667853c5e38f13ec
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/core/src/fmt/mod.rs:1232:17
5: 0x7f4610969275 - std::io::Write::write_fmt::hba0992fb471f923a
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/io/mod.rs:1684:15
6: 0x7f46109762e5 - std::sys_common::backtrace::_print::h215545a75453f830
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/sys_common/backtrace.rs:47:5
7: 0x7f46109762e5 - std::sys_common::backtrace::print::hff9ee2dce3d2dcea
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/sys_common/backtrace.rs:34:9
8: 0x7f461097905f - std::panicking::default_hook::{{closure}}::h8fb87de14fa60e54
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/panicking.rs:271:22
9: 0x7f4610978d9b - std::panicking::default_hook::h319d8219a84d729a
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/panicking.rs:290:9
10: 0x7f4613c990d5 - <rustc_driver_impl[de28347a8abf8356]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[d9ef29759c2251a8]::ops::function::FnOnce<(&core[d9ef29759c2251a8]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
11: 0x7f461097989d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf7dd68431c765c20
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/alloc/src/boxed.rs:2002:9
12: 0x7f461097989d - std::panicking::rust_panic_with_hook::h65b020dd76c4cd89
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/panicking.rs:696:13
13: 0x7f4614204031 - std[bc2958bd9c820bb9]::panicking::begin_panic::<rustc_errors[24bb4dbb092f22f2]::ExplicitBug>::{closure#0}
14: 0x7f46141ff766 - std[bc2958bd9c820bb9]::sys_common::backtrace::__rust_end_short_backtrace::<std[bc2958bd9c820bb9]::panicking::begin_panic<rustc_errors[24bb4dbb092f22f2]::ExplicitBug>::{closure#0}, !>
15: 0x7f4614286ae6 - std[bc2958bd9c820bb9]::panicking::begin_panic::<rustc_errors[24bb4dbb092f22f2]::ExplicitBug>
16: 0x7f4614252bd6 - std[bc2958bd9c820bb9]::panic::panic_any::<rustc_errors[24bb4dbb092f22f2]::ExplicitBug>
17: 0x7f461424f456 - <rustc_errors[24bb4dbb092f22f2]::HandlerInner>::bug::<&alloc[66b6468aa09e7a1]::string::String>
18: 0x7f461424f120 - <rustc_errors[24bb4dbb092f22f2]::Handler>::bug::<&alloc[66b6468aa09e7a1]::string::String>
19: 0x7f461423b58b - rustc_middle[c2bebf1196c36ca]::util::bug::opt_span_bug_fmt::<rustc_span[67f48ae15a2a1ace]::span_encoding::Span>::{closure#0}
20: 0x7f4614239fea - rustc_middle[c2bebf1196c36ca]::ty::context::tls::with_opt::<rustc_middle[c2bebf1196c36ca]::util::bug::opt_span_bug_fmt<rustc_span[67f48ae15a2a1ace]::span_encoding::Span>::{closure#0}, !>::{closure#0}
21: 0x7f4614239fb6 - rustc_middle[c2bebf1196c36ca]::ty::context::tls::with_context_opt::<rustc_middle[c2bebf1196c36ca]::ty::context::tls::with_opt<rustc_middle[c2bebf1196c36ca]::util::bug::opt_span_bug_fmt<rustc_span[67f48ae15a2a1ace]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
22: 0x7f461423b4d6 - rustc_middle[c2bebf1196c36ca]::util::bug::opt_span_bug_fmt::<rustc_span[67f48ae15a2a1ace]::span_encoding::Span>
23: 0x7f4612243563 - rustc_middle[c2bebf1196c36ca]::util::bug::bug_fmt
24: 0x7f4613287af6 - <rustc_middle[c2bebf1196c36ca]::ty::opaque_types::ReverseMapper as rustc_type_ir[99c45160e9dcd5d5]::fold::TypeFolder<rustc_middle[c2bebf1196c36ca]::ty::context::TyCtxt>>::fold_region
25: 0x7f46131d26ff - <&rustc_middle[c2bebf1196c36ca]::ty::list::List<rustc_middle[c2bebf1196c36ca]::ty::subst::GenericArg> as rustc_type_ir[99c45160e9dcd5d5]::fold::TypeFoldable<rustc_middle[c2bebf1196c36ca]::ty::context::TyCtxt>>::try_fold_with::<rustc_middle[c2bebf1196c36ca]::ty::opaque_types::ReverseMapper>
26: 0x7f46131d2359 - <rustc_middle[c2bebf1196c36ca]::ty::Ty as rustc_type_ir[99c45160e9dcd5d5]::fold::TypeSuperFoldable<rustc_middle[c2bebf1196c36ca]::ty::context::TyCtxt>>::super_fold_with::<rustc_middle[c2bebf1196c36ca]::ty::opaque_types::ReverseMapper>
27: 0x7f46134a2d2c - <rustc_infer[d6af38f28f637c8d]::infer::InferCtxt as rustc_borrowck[b0ecc8244f8d9953]::region_infer::opaque_types::InferCtxtExt>::infer_opaque_definition_from_instantiation
28: 0x7f4612689f8a - <rustc_borrowck[b0ecc8244f8d9953]::region_infer::RegionInferenceContext>::infer_opaque_types
29: 0x7f4612682dba - rustc_borrowck[b0ecc8244f8d9953]::nll::compute_regions
30: 0x7f4612652473 - rustc_borrowck[b0ecc8244f8d9953]::do_mir_borrowck
31: 0x7f461264fb11 - <rustc_borrowck[b0ecc8244f8d9953]::provide::{closure#0} as core[d9ef29759c2251a8]::ops::function::FnOnce<(rustc_middle[c2bebf1196c36ca]::ty::context::TyCtxt, rustc_span[67f48ae15a2a1ace]::def_id::LocalDefId)>>::call_once
32: 0x7f461264dc5d - rustc_query_system[bb54613dbf60299b]::query::plumbing::try_execute_query::<rustc_query_impl[6873813250a98cc1]::queries::mir_borrowck, rustc_query_impl[6873813250a98cc1]::plumbing::QueryCtxt>
33: 0x7f461264d90a - <rustc_query_impl[6873813250a98cc1]::Queries as rustc_middle[c2bebf1196c36ca]::ty::query::QueryEngine>::mir_borrowck
34: 0x7f4613e1d2c9 - <rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait::ConstraintLocator>::check
35: 0x7f4613e1a7b2 - <rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait::ConstraintLocator as rustc_hir[3dffec1ee7877645]::intravisit::Visitor>::visit_nested_impl_item
36: 0x7f4613df5bb6 - rustc_hir[3dffec1ee7877645]::intravisit::walk_item::<rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait::ConstraintLocator>
37: 0x7f4613e1a6dd - <rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait::ConstraintLocator as rustc_hir[3dffec1ee7877645]::intravisit::Visitor>::visit_nested_item
38: 0x7f4613df3d78 - rustc_hir[3dffec1ee7877645]::intravisit::walk_mod::<rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait::ConstraintLocator>
39: 0x7f4613e1ca21 - rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::find_opaque_ty_constraints_for_tait
40: 0x7f461318ada6 - rustc_hir_analysis[d31dbb230cf00630]::collect::type_of::type_of
41: 0x7f461259ef80 - rustc_query_system[bb54613dbf60299b]::query::plumbing::try_execute_query::<rustc_query_impl[6873813250a98cc1]::queries::type_of, rustc_query_impl[6873813250a98cc1]::plumbing::QueryCtxt>
42: 0x7f461259d90c - <rustc_query_impl[6873813250a98cc1]::Queries as rustc_middle[c2bebf1196c36ca]::ty::query::QueryEngine>::type_of
43: 0x7f46127fb145 - rustc_hir_analysis[d31dbb230cf00630]::check::check::check_mod_item_types
44: 0x7f46132c7ec5 - rustc_query_system[bb54613dbf60299b]::query::plumbing::try_execute_query::<rustc_query_impl[6873813250a98cc1]::queries::check_mod_item_types, rustc_query_impl[6873813250a98cc1]::plumbing::QueryCtxt>
45: 0x7f46132c7a4a - <rustc_query_impl[6873813250a98cc1]::Queries as rustc_middle[c2bebf1196c36ca]::ty::query::QueryEngine>::check_mod_item_types
46: 0x7f461202881d - <rustc_middle[c2bebf1196c36ca]::hir::map::Map>::for_each_module::<rustc_hir_analysis[d31dbb230cf00630]::check_crate::{closure#6}::{closure#0}>
47: 0x7f4612025d98 - rustc_hir_analysis[d31dbb230cf00630]::check_crate
48: 0x7f461201bcf2 - rustc_interface[50a97a4d78cc75fe]::passes::analysis
49: 0x7f46134a6f7d - rustc_query_system[bb54613dbf60299b]::query::plumbing::try_execute_query::<rustc_query_impl[6873813250a98cc1]::queries::analysis, rustc_query_impl[6873813250a98cc1]::plumbing::QueryCtxt>
50: 0x7f46134a6c7f - <rustc_query_impl[6873813250a98cc1]::Queries as rustc_middle[c2bebf1196c36ca]::ty::query::QueryEngine>::analysis
51: 0x7f46132bc7b6 - <rustc_middle[c2bebf1196c36ca]::ty::context::GlobalCtxt>::enter::<rustc_driver_impl[de28347a8abf8356]::run_compiler::{closure#1}::{closure#2}::{closure#4}, core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>>
52: 0x7f4612ec9a28 - rustc_span[67f48ae15a2a1ace]::with_source_map::<core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>, rustc_interface[50a97a4d78cc75fe]::interface::run_compiler<core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>, rustc_driver_impl[de28347a8abf8356]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
53: 0x7f4612ec0bac - std[bc2958bd9c820bb9]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[50a97a4d78cc75fe]::util::run_in_thread_pool_with_globals<rustc_interface[50a97a4d78cc75fe]::interface::run_compiler<core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>, rustc_driver_impl[de28347a8abf8356]::run_compiler::{closure#1}>::{closure#0}, core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>>
54: 0x7f4612ec05da - <<std[bc2958bd9c820bb9]::thread::Builder>::spawn_unchecked_<rustc_interface[50a97a4d78cc75fe]::util::run_in_thread_pool_with_globals<rustc_interface[50a97a4d78cc75fe]::interface::run_compiler<core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>, rustc_driver_impl[de28347a8abf8356]::run_compiler::{closure#1}>::{closure#0}, core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[d9ef29759c2251a8]::result::Result<(), rustc_span[67f48ae15a2a1ace]::ErrorGuaranteed>>::{closure#1} as core[d9ef29759c2251a8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
55: 0x7f4610983793 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2be05930b084af35
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/alloc/src/boxed.rs:1988:9
56: 0x7f4610983793 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2e27f2bce1de28fe
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/alloc/src/boxed.rs:1988:9
57: 0x7f4610983793 - std::sys::unix::thread::Thread::new::thread_start::hce13d4cabe284bf1
at /rustc/8a73f50d875840b8077b8ec080fa41881d7ce40d/library/std/src/sys/unix/thread.rs:108:17
58: 0x7f4610848609 - start_thread
59: 0x7f461076b133 - clone
60: 0x0 - <unknown>
Metadata
Metadata
Assignees
Labels
Category: This is a bug.Call for participation: An issue has been fixed and does not reproduce, but no test has been added.`#[feature(type_alias_impl_trait)]`Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Status: A Minimal Complete and Verifiable Example has been found for this issueRelevant to the compiler team, which will review and decide on the PR/issue.ICE tracked in rust-lang/glacier.
Type
Projects
Status
Done