rust
rust copied to clipboard
ICE: Region parameter out of range when substituting in region 'b (index=4), async + -Zsave-analysis
Code
reduced from src/test/rustdoc/async-fn.rs
trait Pattern<'a> {}
async fn named_trait<'a, 'b>(foo: impl Pattern<'a>) -> impl Pattern<'b> {}
Meta
rustc --version --verbose
:
rustc 1.64.0-nightly (55f46419a 2022-08-05)
binary: rustc
commit-hash: 55f46419afd2e49acfc6be176ad4aeadaa5686d7
commit-date: 2022-08-05
host: x86_64-unknown-linux-gnu
release: 1.64.0-nightly
LLVM version: 14.0.6
Error output
rustc ./async-fn.rs -Zsave-analysis --edition=2021 --crate-type lib
<output>
Backtrace
error: internal compiler error: compiler/rustc_middle/src/ty/subst.rs:554:13: Region parameter out of range when substituting in region 'b (index=4)
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/compiler/rustc_errors/src/lib.rs:1392:9
stack backtrace:
0: 0x7f5094a179f0 - std::backtrace_rs::backtrace::libunwind::trace::he1976fae853ce905
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
1: 0x7f5094a179f0 - std::backtrace_rs::backtrace::trace_unsynchronized::h3488ea444a1a69dd
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f5094a179f0 - std::sys_common::backtrace::_print_fmt::hfad550d850e72213
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/sys_common/backtrace.rs:66:5
3: 0x7f5094a179f0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h42d6f8c2d1e8c740
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/sys_common/backtrace.rs:45:22
4: 0x7f5094a733bc - core::fmt::write::ha87b736d58259280
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/core/src/fmt/mod.rs:1198:17
5: 0x7f5094a08c35 - std::io::Write::write_fmt::hf60299faac9a8340
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/io/mod.rs:1672:15
6: 0x7f5094a1a6d1 - std::sys_common::backtrace::_print::h5274cd1faa558544
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/sys_common/backtrace.rs:48:5
7: 0x7f5094a1a6d1 - std::sys_common::backtrace::print::h184de4772363b29a
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/sys_common/backtrace.rs:35:9
8: 0x7f5094a1a6d1 - std::panicking::default_hook::{{closure}}::h224bcb75892e6bc7
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/panicking.rs:295:22
9: 0x7f5094a1a39e - std::panicking::default_hook::hd243a62dc6826477
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/panicking.rs:314:9
10: 0x7f5097292524 - rustc_driver[f6b350ee36914076]::DEFAULT_HOOK::{closure#0}::{closure#0}
11: 0x7f5094a1af06 - std::panicking::rust_panic_with_hook::he4db359924fe7f6e
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/panicking.rs:702:17
12: 0x7f5098230461 - std[79962577103da855]::panicking::begin_panic::<rustc_errors[42ff641c0a7dbad8]::ExplicitBug>::{closure#0}
13: 0x7f509822f956 - std[79962577103da855]::sys_common::backtrace::__rust_end_short_backtrace::<std[79962577103da855]::panicking::begin_panic<rustc_errors[42ff641c0a7dbad8]::ExplicitBug>::{closure#0}, !>
14: 0x7f5098211a16 - std[79962577103da855]::panicking::begin_panic::<rustc_errors[42ff641c0a7dbad8]::ExplicitBug>
15: 0x7f5098254d36 - std[79962577103da855]::panic::panic_any::<rustc_errors[42ff641c0a7dbad8]::ExplicitBug>
16: 0x7f5098254b85 - <rustc_errors[42ff641c0a7dbad8]::HandlerInner>::bug::<&alloc[849470dd3c3c5534]::string::String>
17: 0x7f50982548e0 - <rustc_errors[42ff641c0a7dbad8]::Handler>::bug::<&alloc[849470dd3c3c5534]::string::String>
18: 0x7f509827785d - rustc_middle[3ed8dbeb8d00c629]::ty::context::tls::with_context_opt::<rustc_middle[3ed8dbeb8d00c629]::ty::context::tls::with_opt<rustc_middle[3ed8dbeb8d00c629]::util::bug::opt_span_bug_fmt<rustc_span[704994f6531b2995]::span_encoding::Span>::{closure#0}, ()>::{closure#0}, ()>
19: 0x7f509827a916 - rustc_middle[3ed8dbeb8d00c629]::util::bug::opt_span_bug_fmt::<rustc_span[704994f6531b2995]::span_encoding::Span>
20: 0x7f5095ce8093 - rustc_middle[3ed8dbeb8d00c629]::util::bug::bug_fmt
21: 0x7f50982a1dd6 - <rustc_middle[3ed8dbeb8d00c629]::ty::subst::SubstFolder as rustc_middle[3ed8dbeb8d00c629]::ty::fold::TypeFolder>::fold_region::region_param_out_of_range
22: 0x7f5095ca84b3 - <rustc_middle[3ed8dbeb8d00c629]::ty::subst::SubstFolder as rustc_middle[3ed8dbeb8d00c629]::ty::fold::TypeFolder>::fold_region
23: 0x7f5096d8e7c3 - <&rustc_middle[3ed8dbeb8d00c629]::ty::list::List<rustc_middle[3ed8dbeb8d00c629]::ty::subst::GenericArg> as rustc_middle[3ed8dbeb8d00c629]::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle[3ed8dbeb8d00c629]::ty::subst::SubstFolder>
24: 0x7f5096d8e3ac - <rustc_middle[3ed8dbeb8d00c629]::ty::PredicateKind as rustc_middle[3ed8dbeb8d00c629]::ty::fold::TypeFoldable>::try_fold_with::<rustc_middle[3ed8dbeb8d00c629]::ty::subst::SubstFolder>
25: 0x7f5096e5fcb1 - <rustc_middle[3ed8dbeb8d00c629]::ty::subst::SubstFolder as rustc_middle[3ed8dbeb8d00c629]::ty::fold::FallibleTypeFolder>::try_fold_binder::<rustc_middle[3ed8dbeb8d00c629]::ty::PredicateKind>
26: 0x7f5096e5f666 - <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::register_hidden_type
27: 0x7f5096e5ed17 - <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::handle_opaque_type::{closure#0}
28: 0x7f5096e5e635 - <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::handle_opaque_type
29: 0x7f5096e5e269 - <rustc_middle[3ed8dbeb8d00c629]::ty::fold::BottomUpFolder<<rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::replace_opaque_types_with_inference_vars::{closure#3}, <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::replace_opaque_types_with_inference_vars::{closure#1}, <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::replace_opaque_types_with_inference_vars::{closure#2}> as rustc_middle[3ed8dbeb8d00c629]::ty::fold::FallibleTypeFolder>::try_fold_ty
30: 0x7f509628b0e1 - <rustc_infer[8ce69979a813aa75]::infer::InferCtxt>::replace_opaque_types_with_inference_vars
31: 0x7f5095d81de5 - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::supplied_sig_of_closure
32: 0x7f5095d7ea2e - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::check_expr_closure
33: 0x7f5095cfe641 - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
34: 0x7f5095cf5c38 - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::check_argument_types
35: 0x7f5095cadb37 - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::check_call
36: 0x7f5095cfb707 - <rustc_typeck[e4000634b4fd5083]::check::fn_ctxt::FnCtxt>::check_expr_with_expectation_and_args
37: 0x7f509628801d - rustc_typeck[e4000634b4fd5083]::check::check::check_fn
38: 0x7f509627a1ce - <rustc_infer[8ce69979a813aa75]::infer::InferCtxtBuilder>::enter::<&rustc_middle[3ed8dbeb8d00c629]::ty::context::TypeckResults, <rustc_typeck[e4000634b4fd5083]::check::inherited::InheritedBuilder>::enter<rustc_typeck[e4000634b4fd5083]::check::typeck_with_fallback<rustc_typeck[e4000634b4fd5083]::check::typeck::{closure#0}>::{closure#1}, &rustc_middle[3ed8dbeb8d00c629]::ty::context::TypeckResults>::{closure#0}>
39: 0x7f5096277aa4 - rustc_typeck[e4000634b4fd5083]::check::typeck
40: 0x7f50968f865f - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_span[704994f6531b2995]::def_id::LocalDefId, &rustc_middle[3ed8dbeb8d00c629]::ty::context::TypeckResults>>
41: 0x7f5097190b38 - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::typeck
42: 0x7f50968747d5 - <rustc_middle[3ed8dbeb8d00c629]::ty::context::TyCtxt>::typeck_opt_const_arg
43: 0x7f5096873285 - rustc_mir_build[dfd54b01ca75e3b5]::build::mir_built
44: 0x7f50966c3ecd - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_middle[3ed8dbeb8d00c629]::ty::WithOptConstParam<rustc_span[704994f6531b2995]::def_id::LocalDefId>, &rustc_data_structures[1334099735d640c6]::steal::Steal<rustc_middle[3ed8dbeb8d00c629]::mir::Body>>>
45: 0x7f509718f3c5 - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::mir_built
46: 0x7f50962c04a7 - rustc_mir_transform[e55280a4083781aa]::check_unsafety::unsafety_check_result
47: 0x7f50962bff3e - <rustc_mir_transform[e55280a4083781aa]::check_unsafety::provide::{closure#0} as core[aa10b8f86cfda392]::ops::function::FnOnce<(rustc_middle[3ed8dbeb8d00c629]::ty::context::TyCtxt, rustc_span[704994f6531b2995]::def_id::LocalDefId)>>::call_once
48: 0x7f50967ca03f - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_span[704994f6531b2995]::def_id::LocalDefId, &rustc_middle[3ed8dbeb8d00c629]::mir::query::UnsafetyCheckResult>>
49: 0x7f509719073e - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::unsafety_check_result
50: 0x7f5095c0f910 - rustc_mir_transform[e55280a4083781aa]::mir_const
51: 0x7f50966c3ecd - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_middle[3ed8dbeb8d00c629]::ty::WithOptConstParam<rustc_span[704994f6531b2995]::def_id::LocalDefId>, &rustc_data_structures[1334099735d640c6]::steal::Steal<rustc_middle[3ed8dbeb8d00c629]::mir::Body>>>
52: 0x7f509718f4fc - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::mir_const
53: 0x7f5096274aba - rustc_mir_transform[e55280a4083781aa]::mir_promoted
54: 0x7f5096c4c83e - rustc_query_system[cefe79c3038533a5]::query::plumbing::get_query::<rustc_query_impl[40b4f3c979e2ab16]::queries::mir_promoted, rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt>
55: 0x7f5096c4c477 - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::mir_promoted
56: 0x7f5096bec70f - rustc_borrowck[90eeea557b5203e]::mir_borrowck
57: 0x7f5096bec22e - <rustc_borrowck[90eeea557b5203e]::provide::{closure#0} as core[aa10b8f86cfda392]::ops::function::FnOnce<(rustc_middle[3ed8dbeb8d00c629]::ty::context::TyCtxt, rustc_span[704994f6531b2995]::def_id::LocalDefId)>>::call_once
58: 0x7f5096619940 - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_span[704994f6531b2995]::def_id::LocalDefId, &rustc_middle[3ed8dbeb8d00c629]::mir::query::BorrowCheckResult>>
59: 0x7f5097190daa - <rustc_query_impl[40b4f3c979e2ab16]::Queries as rustc_middle[3ed8dbeb8d00c629]::ty::query::QueryEngine>::mir_borrowck
60: 0x7f5096efaf7c - rustc_typeck[e4000634b4fd5083]::collect::type_of::type_of
61: 0x7f50966d291d - rustc_query_system[cefe79c3038533a5]::query::plumbing::get_query::<rustc_query_impl[40b4f3c979e2ab16]::queries::type_of, rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt>
62: 0x7f5096961025 - rustc_typeck[e4000634b4fd5083]::check::check::check_item_type
63: 0x7f509695d50e - rustc_typeck[e4000634b4fd5083]::check::check::check_mod_item_types
64: 0x7f50964cbd4b - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<rustc_span[704994f6531b2995]::def_id::LocalDefId, ()>>
65: 0x7f5096cd9a43 - rustc_query_system[cefe79c3038533a5]::query::plumbing::get_query::<rustc_query_impl[40b4f3c979e2ab16]::queries::check_mod_item_types, rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt>
66: 0x7f5096f7a6ff - <rustc_middle[3ed8dbeb8d00c629]::hir::map::Map>::for_each_module::<rustc_typeck[e4000634b4fd5083]::check_crate::{closure#6}::{closure#0}>
67: 0x7f5096c6d855 - rustc_typeck[e4000634b4fd5083]::check_crate
68: 0x7f5096c6ce97 - rustc_interface[1d8565b9d7e787d1]::passes::analysis
69: 0x7f5097020c15 - rustc_query_system[cefe79c3038533a5]::query::plumbing::try_execute_query::<rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt, rustc_query_system[cefe79c3038533a5]::query::caches::DefaultCache<(), core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>>
70: 0x7f509702099e - rustc_query_system[cefe79c3038533a5]::query::plumbing::get_query::<rustc_query_impl[40b4f3c979e2ab16]::queries::analysis, rustc_query_impl[40b4f3c979e2ab16]::plumbing::QueryCtxt>
71: 0x7f5096a7030a - <rustc_interface[1d8565b9d7e787d1]::interface::Compiler>::enter::<rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}::{closure#2}, core[aa10b8f86cfda392]::result::Result<core[aa10b8f86cfda392]::option::Option<rustc_interface[1d8565b9d7e787d1]::queries::Linker>, rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>
72: 0x7f5096a63d2a - rustc_span[704994f6531b2995]::with_source_map::<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_interface[1d8565b9d7e787d1]::interface::create_compiler_and_run<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}>::{closure#1}>
73: 0x7f5096a63700 - rustc_interface[1d8565b9d7e787d1]::interface::create_compiler_and_run::<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}>
74: 0x7f5096a61a71 - <scoped_tls[fc5e344a71e03ad0]::ScopedKey<rustc_span[704994f6531b2995]::SessionGlobals>>::set::<rustc_interface[1d8565b9d7e787d1]::interface::run_compiler<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}>::{closure#0}, core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>
75: 0x7f5096a6175f - std[79962577103da855]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[1d8565b9d7e787d1]::util::run_in_thread_pool_with_globals<rustc_interface[1d8565b9d7e787d1]::interface::run_compiler<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}>::{closure#0}, core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>::{closure#0}, core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>
76: 0x7f50970b4759 - <<std[79962577103da855]::thread::Builder>::spawn_unchecked_<rustc_interface[1d8565b9d7e787d1]::util::run_in_thread_pool_with_globals<rustc_interface[1d8565b9d7e787d1]::interface::run_compiler<core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>, rustc_driver[f6b350ee36914076]::run_compiler::{closure#1}>::{closure#0}, core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>::{closure#0}, core[aa10b8f86cfda392]::result::Result<(), rustc_errors[42ff641c0a7dbad8]::ErrorGuaranteed>>::{closure#1} as core[aa10b8f86cfda392]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
77: 0x7f5094a24ed3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h8951f5312048b23c
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/alloc/src/boxed.rs:1935:9
78: 0x7f5094a24ed3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h45d7e719250fdc91
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/alloc/src/boxed.rs:1935:9
79: 0x7f5094a24ed3 - std::sys::unix::thread::Thread::new::thread_start::h865a7bb40e742e03
at /rustc/55f46419afd2e49acfc6be176ad4aeadaa5686d7/library/std/src/sys/unix/thread.rs:108:17
80: 0x7f509476354d - <unknown>
81: 0x7f50947e8874 - clone
82: 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.64.0-nightly (55f46419a 2022-08-05) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z save-analysis --crate-type lib
query stack during panic:
#0 [typeck] type-checking `named_trait`
#1 [mir_built] building MIR for `named_trait`
#2 [unsafety_check_result] unsafety-checking `named_trait`
#3 [mir_const] processing MIR for `named_trait`
#4 [mir_promoted] processing `named_trait`
#5 [mir_borrowck] borrow-checking `named_trait`
#6 [type_of] computing type of `named_trait::{opaque#0}`
#7 [check_mod_item_types] checking item types in top-level module
#8 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error
@rustbot claim
I've just hit it independently:
trait Trait<T> { type Ty; }
impl Trait<&u8> for () { type Ty = (); }
fn test<'a, 'b>() -> impl Trait<&'a u8, Ty = impl Sized + 'b> {}
Regressed in f6f9d5e73..affe0d3a0, most likely #99867. cc @spastorino.
@rustbot label A-impl-trait regression-from-stable-to-nightly
interesting, so this does neither require async nor -Zsave-analysis
actually :slightly_smiling_face:
Regressed in f6f9d5e..affe0d3, most likely #99867. cc @spastorino.
@rustbot label A-impl-trait regression-from-stable-to-nightly
Can confirm that this is due to #99867, going to investigate.
WG-prioritization assigning priority (Zulip discussion).
@rustbot label -I-prioritize +P-medium
EDIT: after further discussion @rustbot label -P-medium +P-critical