rust
rust copied to clipboard
ICE when using non-lifetimes in `for<>`
Code
trait Kind<'a, T> { type This: 'a; }
type This<'a, T, K> = <K as Kind<'a, T>>::This;
struct X<'a, K: for<T: 'a> Kind<'a, T>>;
(this is invalid syntax but it shouldn't ICE)
Meta
rustc --version --verbose
:
1.62.1
Error output
error: only lifetime parameters can be used in this context
--> src/main.rs:27:21
|
27 | struct X<'a, K: for<T: 'a> Kind<'a, T>>;
| ^
thread 'rustc' panicked at 'no entry found for key', compiler/rustc_typeck/src/astconv/mod.rs:2273:29
Backtrace
thread 'rustc' panicked at 'no entry found for key', compiler/rustc_typeck/src/astconv/mod.rs:2273:29
stack backtrace:
0: 0x7f453adc1fbd - std::backtrace_rs::backtrace::libunwind::trace::h8e036432725b1c57
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f453adc1fbd - std::backtrace_rs::backtrace::trace_unsynchronized::h4f83092254c85869
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f453adc1fbd - std::sys_common::backtrace::_print_fmt::h9728b5e056a3ece3
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:66:5
3: 0x7f453adc1fbd - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h48bb4bd2928827d2
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:45:22
4: 0x7f453ae1dc4c - core::fmt::write::h909e69a2c24f44cc
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/fmt/mod.rs:1196:17
5: 0x7f453adb3731 - std::io::Write::write_fmt::h7f4b8ab8af89e9ef
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/io/mod.rs:1654:15
6: 0x7f453adc4cd5 - std::sys_common::backtrace::_print::hff4838ebf14a2171
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:48:5
7: 0x7f453adc4cd5 - std::sys_common::backtrace::print::h2499280374189ad9
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:35:9
8: 0x7f453adc4cd5 - std::panicking::default_hook::{{closure}}::h8b270fc55eeb284e
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:295:22
9: 0x7f453adc4949 - std::panicking::default_hook::h3217e229d6e9d13c
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:314:9
10: 0x7f453b589571 - rustc_driver[b4654d3c4d4292dd]::DEFAULT_HOOK::{closure#0}::{closure#0}
11: 0x7f453adc54a6 - std::panicking::rust_panic_with_hook::h9acb8048b738d2e0
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:702:17
12: 0x7f453adc52a7 - std::panicking::begin_panic_handler::{{closure}}::h70f3b839526af6dc
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:588:13
13: 0x7f453adc2474 - std::sys_common::backtrace::__rust_end_short_backtrace::h1ecf2cee857fbe0a
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys_common/backtrace.rs:138:18
14: 0x7f453adc4fd9 - rust_begin_unwind
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/panicking.rs:584:5
15: 0x7f453ad8a253 - core::panicking::panic_fmt::h9f8393e7fd56d655
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:142:14
16: 0x7f453ae1a8b1 - core::panicking::panic_display::he99cdc22380c31de
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:72:5
17: 0x7f453ae1a85b - core::panicking::panic_str::hce6f990cfce94fc7
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/panicking.rs:56:5
18: 0x7f453ad8a0c6 - core::option::expect_failed::hb4b987dd6d9ee8f8
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/core/src/option.rs:1854:5
19: 0x7f453cb1b792 - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::res_to_ty
20: 0x7f453cb24450 - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::ast_ty_to_ty_inner
21: 0x7f453cb2142f - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::create_substs_for_ast_path
22: 0x7f453cb0ea64 - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::instantiate_poly_trait_ref_inner
23: 0x7f453cb2363d - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::instantiate_poly_trait_ref
24: 0x7f453d8abedc - <dyn rustc_typeck[8647eb72137f70a2]::astconv::AstConv>::add_bounds::<core[dbea6f494faa966e]::slice::iter::Iter<rustc_hir[597a1a56ef61745a]::hir::GenericBound>>
25: 0x7f453cab0f0a - rustc_typeck[8647eb72137f70a2]::collect::gather_explicit_predicates_of
26: 0x7f453cab271f - rustc_typeck[8647eb72137f70a2]::collect::explicit_predicates_of
27: 0x7f453d08fea8 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::get_query::<rustc_query_impl[4e222bcb6a32466d]::queries::explicit_predicates_of, rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt>
28: 0x7f453d01dd3e - <rustc_query_impl[4e222bcb6a32466d]::Queries as rustc_middle[74ddc95a19f9493f]::ty::query::QueryEngine>::explicit_predicates_of
29: 0x7f453caaf914 - rustc_typeck[8647eb72137f70a2]::collect::predicates_defined_on
30: 0x7f453d08d9a8 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::get_query::<rustc_query_impl[4e222bcb6a32466d]::queries::predicates_defined_on, rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt>
31: 0x7f453d01dd0e - <rustc_query_impl[4e222bcb6a32466d]::Queries as rustc_middle[74ddc95a19f9493f]::ty::query::QueryEngine>::predicates_defined_on
32: 0x7f453caaff4a - rustc_typeck[8647eb72137f70a2]::collect::predicates_of
33: 0x7f453d07b402 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::get_query::<rustc_query_impl[4e222bcb6a32466d]::queries::predicates_of, rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt>
34: 0x7f453d01cf5e - <rustc_query_impl[4e222bcb6a32466d]::Queries as rustc_middle[74ddc95a19f9493f]::ty::query::QueryEngine>::predicates_of
35: 0x7f453caa4bde - <rustc_typeck[8647eb72137f70a2]::collect::CollectItemTypesVisitor as rustc_hir[597a1a56ef61745a]::intravisit::Visitor>::visit_item
36: 0x7f453cb363c0 - <rustc_middle[74ddc95a19f9493f]::hir::map::Map>::visit_item_likes_in_module::<rustc_hir[597a1a56ef61745a]::intravisit::DeepVisitor<rustc_typeck[8647eb72137f70a2]::collect::CollectItemTypesVisitor>>
37: 0x7f453d86ee89 - rustc_typeck[8647eb72137f70a2]::collect::collect_mod_item_types
38: 0x7f453d055bc0 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::try_execute_query::<rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt, rustc_query_system[b4bd2ce220f7e42d]::query::caches::DefaultCache<rustc_span[1d0b4d44d1f53955]::def_id::LocalDefId, ()>>
39: 0x7f453dbaecc3 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::get_query::<rustc_query_impl[4e222bcb6a32466d]::queries::collect_mod_item_types, rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt>
40: 0x7f453d8bf4ed - <rustc_middle[74ddc95a19f9493f]::hir::map::Map>::for_each_module::<rustc_typeck[8647eb72137f70a2]::check_crate::{closure#0}::{closure#0}::{closure#0}>
41: 0x7f453d894e15 - <rustc_session[a2f3190f51a45935]::session::Session>::track_errors::<rustc_typeck[8647eb72137f70a2]::check_crate::{closure#0}, ()>
42: 0x7f453d87e540 - rustc_typeck[8647eb72137f70a2]::check_crate
43: 0x7f453d626f87 - rustc_interface[9f664daa3237129]::passes::analysis
44: 0x7f453db78334 - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::try_execute_query::<rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt, rustc_query_system[b4bd2ce220f7e42d]::query::caches::DefaultCache<(), core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>>
45: 0x7f453dbb98ce - rustc_query_system[b4bd2ce220f7e42d]::query::plumbing::get_query::<rustc_query_impl[4e222bcb6a32466d]::queries::analysis, rustc_query_impl[4e222bcb6a32466d]::plumbing::QueryCtxt>
46: 0x7f453d607777 - <rustc_interface[9f664daa3237129]::passes::QueryContext>::enter::<rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}::{closure#2}::{closure#3}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>
47: 0x7f453d5f2708 - <rustc_interface[9f664daa3237129]::interface::Compiler>::enter::<rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}::{closure#2}, core[dbea6f494faa966e]::result::Result<core[dbea6f494faa966e]::option::Option<rustc_interface[9f664daa3237129]::queries::Linker>, rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>
48: 0x7f453d61b09f - rustc_span[1d0b4d44d1f53955]::with_source_map::<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_interface[9f664daa3237129]::interface::create_compiler_and_run<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}>::{closure#1}>
49: 0x7f453d5f3374 - rustc_interface[9f664daa3237129]::interface::create_compiler_and_run::<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}>
50: 0x7f453d5f0c12 - <scoped_tls[ab1554bfb6e7ab15]::ScopedKey<rustc_span[1d0b4d44d1f53955]::SessionGlobals>>::set::<rustc_interface[9f664daa3237129]::interface::run_compiler<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}>::{closure#0}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>
51: 0x7f453d607dff - std[8996aeeb2a45fe64]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[9f664daa3237129]::util::run_in_thread_pool_with_globals<rustc_interface[9f664daa3237129]::interface::run_compiler<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}>::{closure#0}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>::{closure#0}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>
52: 0x7f453d607f39 - <<std[8996aeeb2a45fe64]::thread::Builder>::spawn_unchecked_<rustc_interface[9f664daa3237129]::util::run_in_thread_pool_with_globals<rustc_interface[9f664daa3237129]::interface::run_compiler<core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>, rustc_driver[b4654d3c4d4292dd]::run_compiler::{closure#1}>::{closure#0}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>::{closure#0}, core[dbea6f494faa966e]::result::Result<(), rustc_errors[4633ef6e4608f9c1]::ErrorGuaranteed>>::{closure#1} as core[dbea6f494faa966e]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
53: 0x7f453adcf3c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h191d5c5ea3edb31d
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/alloc/src/boxed.rs:1872:9
54: 0x7f453adcf3c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h42ef7cb2ae640a31
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/alloc/src/boxed.rs:1872:9
55: 0x7f453adcf3c3 - std::sys::unix::thread::Thread::new::thread_start::he47f7169665dab60
at /rustc/e092d0b6b43f2de967af0887873151bb1c0b18d3/library/std/src/sys/unix/thread.rs:108:17
56: 0x7f453acff609 - start_thread
57: 0x7f453ac18133 - clone
58: 0x0 - <unknown>
error: internal compiler error: unexpected panic
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.62.1 (e092d0b6b 2022-07-16) running on x86_64-unknown-linux-gnu
note: compiler flags: --crate-type bin -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [explicit_predicates_of] computing explicit predicates of `X`
#1 [predicates_defined_on] computing predicates of `X`
#2 [predicates_of] computing predicates of `X`
#3 [collect_mod_item_types] collecting item types in top-level module
#4 [analysis] running analysis passes on this crate
end of query stack
Can you reproduce this on nightly?
While this does ICE on stable, it doesn't on latest nightly.
It looks like it doesn't on nightly, indeed. I'm not sure what the policy is though, an ICE on stable (even though not occurring on nightly) is still an ICE?
Well, yes, it's still an ICE. But it is now fixed!
I'm not sure what the policy is though, an ICE on stable (even though not occurring on nightly) is still an ICE?
There's nothing more to do except for wait until the fix lands on stable, which is happening in the next release which happens in a few days. I'm gonna close this issue because of that, thanks for the report!