Closed
Description
auto-reduced (treereduce-rust):
trait ReturnsVoidFn<T: Fn() -> ()> = Fn() -> r#Self;
type A<'a, > = Vec<&'a dyn ReturnsVoidFn<impl Sized + use<Self>>>;
original:
#![feature(trait_alias)]
trait ReturnsVoidFn<T: Fn() -> ()> = Fn() -> r#Self;
type A<'a, T: Fn() -> ()> = Vec<&'a dyn ReturnsVoidFn<impl Sized + use<Self>>>;
Version information
rustc 1.87.0-nightly (2a0602295 2025-03-28)
binary: rustc
commit-hash: 2a06022951893fe5b5384f8dbd75b4e6e3b5cee0
commit-date: 2025-03-28
host: x86_64-unknown-linux-gnu
release: 1.87.0-nightly
LLVM version: 20.1.1
Possibly related line of code:
rust/compiler/rustc_hir_analysis/src/outlives/utils.rs
Lines 123 to 135 in 2a06022
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc
Program output
error: `Self` cannot be a raw identifier
--> /tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs:2:46
|
2 | trait ReturnsVoidFn<T: Fn() -> ()> = Fn() -> r#Self;
| ^^^^^^
error[E0411]: cannot find type or const parameter `Self` in this scope
--> /tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs:4:59
|
4 | type A<'a, > = Vec<&'a dyn ReturnsVoidFn<impl Sized + use<Self>>>;
| - `Self` not allowed in a type alias ^^^^ `Self` is only available in impls, traits, and type definitions
error[E0658]: trait aliases are experimental
--> /tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs:2:1
|
2 | trait ReturnsVoidFn<T: Fn() -> ()> = Fn() -> r#Self;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #41517 <https://github.com/rust-lang/rust/issues/41517> for more information
= help: add `#![feature(trait_alias)]` to the crate attributes to enable
= note: this compiler was built on 2025-03-28; consider upgrading it if it is out of date
error[E0658]: `impl Trait` in type aliases is unstable
--> /tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs:4:42
|
4 | type A<'a, > = Vec<&'a dyn ReturnsVoidFn<impl Sized + use<Self>>>;
| ^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
= help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
= note: this compiler was built on 2025-03-28; consider upgrading it if it is out of date
error[E0601]: `main` function not found in crate `mvce`
--> /tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs:4:67
|
4 | type A<'a, > = Vec<&'a dyn ReturnsVoidFn<impl Sized + use<Self>>>;
| ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.gEOZ3yXcDzPR/rustc_testrunner_tmpdir_reporting.8WXvu1YxUMnu/mvce.rs`
error: internal compiler error: compiler/rustc_hir_analysis/src/outlives/utils.rs:129:66: not using infcx
thread 'rustc' panicked at compiler/rustc_hir_analysis/src/outlives/utils.rs:129:66:
Box<dyn Any>
stack backtrace:
0: 0x7b3177277313 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hec1be6b515a4b985
1: 0x7b3177a05d91 - core::fmt::write::h1a721e23ea933c95
2: 0x7b3178e8da51 - std::io::Write::write_fmt::h8aaeee0f3c8d3f0a
3: 0x7b3177277172 - std::sys::backtrace::BacktraceLock::print::h5669ce1c06d4f78b
4: 0x7b3177279a2a - std::panicking::default_hook::{{closure}}::h266748ebbae7c4be
5: 0x7b31772795af - std::panicking::default_hook::hc3bb6e6c093f4ea4
6: 0x7b31762e39b0 - std[4597d80d7047b022]::panicking::update_hook::<alloc[772d3812010e97a3]::boxed::Box<rustc_driver_impl[1d133c6972a1a6b9]::install_ice_hook::{closure#1}>>::{closure#0}
7: 0x7b317727a2a3 - std::panicking::rust_panic_with_hook::h51ac92c4d270e86c
8: 0x7b3176322cc1 - std[4597d80d7047b022]::panicking::begin_panic::<rustc_errors[7964d5e4d9f7f11a]::ExplicitBug>::{closure#0}
9: 0x7b3176316986 - std[4597d80d7047b022]::sys::backtrace::__rust_end_short_backtrace::<std[4597d80d7047b022]::panicking::begin_panic<rustc_errors[7964d5e4d9f7f11a]::ExplicitBug>::{closure#0}, !>
10: 0x7b31763132c9 - std[4597d80d7047b022]::panicking::begin_panic::<rustc_errors[7964d5e4d9f7f11a]::ExplicitBug>
11: 0x7b317632c681 - <rustc_errors[7964d5e4d9f7f11a]::diagnostic::BugAbort as rustc_errors[7964d5e4d9f7f11a]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
12: 0x7b317696530a - rustc_middle[8492cbf8fcfbb736]::util::bug::opt_span_bug_fmt::<rustc_span[c4947a62e1591df3]::span_encoding::Span>::{closure#0}
13: 0x7b3176940d5a - rustc_middle[8492cbf8fcfbb736]::ty::context::tls::with_opt::<rustc_middle[8492cbf8fcfbb736]::util::bug::opt_span_bug_fmt<rustc_span[c4947a62e1591df3]::span_encoding::Span>::{closure#0}, !>::{closure#0}
14: 0x7b3176940bcb - rustc_middle[8492cbf8fcfbb736]::ty::context::tls::with_context_opt::<rustc_middle[8492cbf8fcfbb736]::ty::context::tls::with_opt<rustc_middle[8492cbf8fcfbb736]::util::bug::opt_span_bug_fmt<rustc_span[c4947a62e1591df3]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
15: 0x7b3174465af0 - rustc_middle[8492cbf8fcfbb736]::util::bug::bug_fmt
16: 0x7b317859831d - rustc_hir_analysis[ccce52f49be93bd3]::outlives::utils::insert_outlives_predicate
17: 0x7b3177ebc75a - rustc_hir_analysis[ccce52f49be93bd3]::outlives::implicit_infer::insert_required_predicates_to_be_wf
18: 0x7b3177ebe299 - rustc_hir_analysis[ccce52f49be93bd3]::outlives::inferred_outlives_crate
19: 0x7b317880cce0 - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::inferred_outlives_crate::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 8usize]>>
20: 0x7b31789bec84 - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_query_system[87ba3fee088a6fc4]::query::caches::SingleCache<rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
21: 0x7b31789bd511 - rustc_query_impl[3289d2c66c00b6f8]::query_impl::inferred_outlives_crate::get_query_non_incr::__rust_end_short_backtrace
22: 0x7b3177c7ce09 - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::inferred_outlives_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 16usize]>>
23: 0x7b3177c7baf5 - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_query_system[87ba3fee088a6fc4]::query::caches::DefIdCache<rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
24: 0x7b3177c7b522 - rustc_query_impl[3289d2c66c00b6f8]::query_impl::inferred_outlives_of::get_query_non_incr::__rust_end_short_backtrace
25: 0x7b3177c825dd - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::predicates_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 24usize]>>
26: 0x7b3177c835e3 - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_query_system[87ba3fee088a6fc4]::query::caches::DefIdCache<rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 24usize]>>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
27: 0x7b3177c82e42 - rustc_query_impl[3289d2c66c00b6f8]::query_impl::predicates_of::get_query_non_incr::__rust_end_short_backtrace
28: 0x7b3177ef4ff7 - <rustc_hir_analysis[ccce52f49be93bd3]::collect::CollectItemTypesVisitor as rustc_hir[ef5124c98fbfaebc]::intravisit::Visitor>::visit_item
29: 0x7b3177eeaf23 - rustc_hir_analysis[ccce52f49be93bd3]::check::wfcheck::check_well_formed
30: 0x7b3177eead2b - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 1usize]>>
31: 0x7b3177eea5d4 - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_data_structures[44af7552550bcb5]::vec_cache::VecCache<rustc_span[c4947a62e1591df3]::def_id::LocalDefId, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 1usize]>, rustc_query_system[87ba3fee088a6fc4]::dep_graph::graph::DepNodeIndex>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
32: 0x7b3177eea0c3 - rustc_query_impl[3289d2c66c00b6f8]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
33: 0x7b3177ee7555 - rustc_hir_analysis[ccce52f49be93bd3]::check::wfcheck::check_mod_type_wf
34: 0x7b3177ee7375 - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 1usize]>>
35: 0x7b3178894a19 - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_query_system[87ba3fee088a6fc4]::query::caches::DefaultCache<rustc_span[c4947a62e1591df3]::def_id::LocalModDefId, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
36: 0x7b317889478a - rustc_query_impl[3289d2c66c00b6f8]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
37: 0x7b3177d3a697 - rustc_hir_analysis[ccce52f49be93bd3]::check_crate
38: 0x7b3178341a23 - rustc_interface[838c222bb47cac2d]::passes::run_required_analyses
39: 0x7b317841fc9e - rustc_interface[838c222bb47cac2d]::passes::analysis
40: 0x7b317841fc6d - rustc_query_impl[3289d2c66c00b6f8]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[3289d2c66c00b6f8]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 0usize]>>
41: 0x7b31789bc3fd - rustc_query_system[87ba3fee088a6fc4]::query::plumbing::try_execute_query::<rustc_query_impl[3289d2c66c00b6f8]::DynamicConfig<rustc_query_system[87ba3fee088a6fc4]::query::caches::SingleCache<rustc_middle[8492cbf8fcfbb736]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[3289d2c66c00b6f8]::plumbing::QueryCtxt, false>
42: 0x7b31789bc0f8 - rustc_query_impl[3289d2c66c00b6f8]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
43: 0x7b3178cc874d - rustc_interface[838c222bb47cac2d]::passes::create_and_enter_global_ctxt::<core[d013d7c9d10039cf]::option::Option<rustc_interface[838c222bb47cac2d]::queries::Linker>, rustc_driver_impl[1d133c6972a1a6b9]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
44: 0x7b3178b651aa - rustc_interface[838c222bb47cac2d]::interface::run_compiler::<(), rustc_driver_impl[1d133c6972a1a6b9]::run_compiler::{closure#0}>::{closure#1}
45: 0x7b3178978148 - std[4597d80d7047b022]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[838c222bb47cac2d]::util::run_in_thread_with_globals<rustc_interface[838c222bb47cac2d]::util::run_in_thread_pool_with_globals<rustc_interface[838c222bb47cac2d]::interface::run_compiler<(), rustc_driver_impl[1d133c6972a1a6b9]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
46: 0x7b3178978a34 - <<std[4597d80d7047b022]::thread::Builder>::spawn_unchecked_<rustc_interface[838c222bb47cac2d]::util::run_in_thread_with_globals<rustc_interface[838c222bb47cac2d]::util::run_in_thread_pool_with_globals<rustc_interface[838c222bb47cac2d]::interface::run_compiler<(), rustc_driver_impl[1d133c6972a1a6b9]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[d013d7c9d10039cf]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
47: 0x7b3178979e37 - std::sys::pal::unix::thread::Thread::new::thread_start::h287c1faba384eaa8
48: 0x7b31728a370a - <unknown>
49: 0x7b3172927aac - <unknown>
50: 0x0 - <unknown>
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: please make sure that you have updated to the latest nightly
note: rustc 1.87.0-nightly (2a0602295 2025-03-28) running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [inferred_outlives_crate] computing the inferred outlives-predicates for items in this crate
#1 [inferred_outlives_of] computing inferred outlives-predicates of `A`
#2 [predicates_of] computing predicates of `A`
#3 [check_well_formed] checking that `A` is well-formed
#4 [check_mod_type_wf] checking that types are well-formed in top-level module
#5 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 6 previous errors
Some errors have detailed explanations: E0411, E0601, E0658.
For more information about an error, try `rustc --explain E0411`.
@rustbot label +F-trait_alias
Metadata
Metadata
Assignees
Labels
Area: trait objects, vtable layoutCategory: This is a bug.`#![feature(trait_alias)]``#[feature(type_alias_impl_trait)]`Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Status: a bisection has been found for this issueStatus: A Minimal Complete and Verifiable Example has been found for this issueRelevant to the types team, which will review and decide on the PR/issue.