Closed
Description
While checkout out this ice (which does not require a feature gate btw, so potential beta-to-stable regression, which is inconvenient
snippet:
use std::pat::pattern_type;
type Always = pattern_type!(Option<u32> is Some(_));
Version information
rustc 1.79.0-nightly (537aab7a2 2024-04-08)
binary: rustc
commit-hash: 537aab7a2e7fe9cdf50b5ff18485e0793cd8db62
commit-date: 2024-04-08
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.3
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc
Program output
error[E0658]: use of unstable library feature 'core_pattern_type'
--> /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:15
|
3 | type Always = pattern_type!(Option<u32> is Some(_));
| ^^^^^^^^^^^^
|
= help: add `#![feature(core_pattern_type)]` to the crate attributes to enable
= note: this compiler was built on 2024-04-08; consider upgrading it if it is out of date
error[E0658]: pattern types are unstable
--> /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:15
|
3 | type Always = pattern_type!(Option<u32> is Some(_));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: see issue #54882 <https://github.com/rust-lang/rust/issues/54882> for more information
= help: add `#![feature(pattern_types)]` to the crate attributes to enable
= note: this compiler was built on 2024-04-08; consider upgrading it if it is out of date
error[E0601]: `main` function not found in crate `mvce`
--> /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:53
|
3 | type Always = pattern_type!(Option<u32> is Some(_));
| ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs`
error[E0658]: use of unstable library feature 'core_pattern_type'
--> /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:1:5
|
1 | use std::pat::pattern_type;
| ^^^^^^^^^^^^^^^^^^^^^^
|
= help: add `#![feature(core_pattern_type)]` to the crate attributes to enable
= note: this compiler was built on 2024-04-08; consider upgrading it if it is out of date
error: internal compiler error: compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs:2252:26: unsupported pattern for pattern type: Pat {
hir_id: HirId(DefId(0:4 ~ mvce[b30d]::Always).7),
kind: TupleStruct(
Resolved(
None,
Path {
span: /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:44: 3:48 (#0),
res: Err,
segments: [
PathSegment {
ident: Some#0,
hir_id: HirId(DefId(0:4 ~ mvce[b30d]::Always).5),
res: Err,
args: None,
infer_args: true,
},
],
},
),
[
Pat {
hir_id: HirId(DefId(0:4 ~ mvce[b30d]::Always).6),
kind: Wild,
span: /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:49: 3:50 (#0),
default_binding_modes: true,
},
],
None,
),
span: /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:44: 3:51 (#0),
default_binding_modes: true,
}
--> /tmp/icemaker_global_tempdir.ACwscHoXGDVj/rustc_testrunner_tmpdir_reporting.LrjHdxKAtSsK/mvce.rs:3:44
|
3 | type Always = pattern_type!(Option<u32> is Some(_));
| ^^^^^^^
thread 'rustc' panicked at compiler/rustc_hir_analysis/src/hir_ty_lowering/mod.rs:2252:26:
Box<dyn Any>
stack backtrace:
0: 0x76636502a885 - std::backtrace_rs::backtrace::libunwind::trace::h3c5d6be2ca224618
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
1: 0x76636502a885 - std::backtrace_rs::backtrace::trace_unsynchronized::h07f25bfbbc81f9b7
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x76636502a885 - std::sys_common::backtrace::_print_fmt::hf0313e0fd41b1242
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/sys_common/backtrace.rs:68:5
3: 0x76636502a885 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha80bcf755077e3a1
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/sys_common/backtrace.rs:44:22
4: 0x766365079b4b - core::fmt::rt::Argument::fmt::hea7d7a647aef4433
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/core/src/fmt/rt.rs:142:9
5: 0x766365079b4b - core::fmt::write::h0eafe6836efd2236
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/core/src/fmt/mod.rs:1153:17
6: 0x76636501f47f - std::io::Write::write_fmt::hee25aa3e7912fe48
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/io/mod.rs:1843:15
7: 0x76636502a65e - std::sys_common::backtrace::_print::h0c8b5670573775f7
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/sys_common/backtrace.rs:47:5
8: 0x76636502a65e - std::sys_common::backtrace::print::hb0c84899d27bc992
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/sys_common/backtrace.rs:34:9
9: 0x76636502d159 - std::panicking::default_hook::{{closure}}::hdd10a62b37f83705
10: 0x76636502ce75 - std::panicking::default_hook::h491d7bd053f3c065
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/panicking.rs:291:9
11: 0x76636185be5f - std[8cce646dcc9f51a2]::panicking::update_hook::<alloc[7e5e1bdade7884f3]::boxed::Box<rustc_driver_impl[b1693766bfe96bed]::install_ice_hook::{closure#0}>>::{closure#0}
12: 0x76636502d85c - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h673a5ec9e27814ea
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/alloc/src/boxed.rs:2032:9
13: 0x76636502d85c - std::panicking::rust_panic_with_hook::h2f18055510e9d6ac
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/panicking.rs:792:13
14: 0x76636188bed4 - std[8cce646dcc9f51a2]::panicking::begin_panic::<rustc_errors[6ec141f8b50a2d31]::ExplicitBug>::{closure#0}
15: 0x766361888c46 - std[8cce646dcc9f51a2]::sys_common::backtrace::__rust_end_short_backtrace::<std[8cce646dcc9f51a2]::panicking::begin_panic<rustc_errors[6ec141f8b50a2d31]::ExplicitBug>::{closure#0}, !>
16: 0x766361888926 - std[8cce646dcc9f51a2]::panicking::begin_panic::<rustc_errors[6ec141f8b50a2d31]::ExplicitBug>
17: 0x7663618952d1 - <rustc_errors[6ec141f8b50a2d31]::diagnostic::BugAbort as rustc_errors[6ec141f8b50a2d31]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
18: 0x76636190ab28 - <rustc_errors[6ec141f8b50a2d31]::DiagCtxt>::span_bug::<rustc_span[c8203a7ebedcd79e]::span_encoding::Span, alloc[7e5e1bdade7884f3]::string::String>
19: 0x76636194573d - rustc_middle[29872c107b60a246]::util::bug::opt_span_bug_fmt::<rustc_span[c8203a7ebedcd79e]::span_encoding::Span>::{closure#0}
20: 0x7663619461aa - rustc_middle[29872c107b60a246]::ty::context::tls::with_opt::<rustc_middle[29872c107b60a246]::util::bug::opt_span_bug_fmt<rustc_span[c8203a7ebedcd79e]::span_encoding::Span>::{closure#0}, !>::{closure#0}
21: 0x76636192abfb - rustc_middle[29872c107b60a246]::ty::context::tls::with_context_opt::<rustc_middle[29872c107b60a246]::ty::context::tls::with_opt<rustc_middle[29872c107b60a246]::util::bug::opt_span_bug_fmt<rustc_span[c8203a7ebedcd79e]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
22: 0x766361927107 - rustc_middle[29872c107b60a246]::util::bug::span_bug_fmt::<rustc_span[c8203a7ebedcd79e]::span_encoding::Span>
23: 0x766362e71d12 - <dyn rustc_hir_analysis[79635f1fa32cabba]::hir_ty_lowering::HirTyLowerer>::lower_ty_common
24: 0x766360971cf3 - rustc_hir_analysis[79635f1fa32cabba]::collect::type_of::type_of
25: 0x766362cc64a2 - rustc_query_impl[51661ff1e116d73e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[51661ff1e116d73e]::query_impl::type_of::dynamic_query::{closure#2}::{closure#0}, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 8usize]>>
26: 0x766362cc50e1 - rustc_query_system[2cf76174bd7e0814]::query::plumbing::try_execute_query::<rustc_query_impl[51661ff1e116d73e]::DynamicConfig<rustc_query_system[2cf76174bd7e0814]::query::caches::DefIdCache<rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[51661ff1e116d73e]::plumbing::QueryCtxt, false>
27: 0x766362cc4bdb - rustc_query_impl[51661ff1e116d73e]::query_impl::type_of::get_query_non_incr::__rust_end_short_backtrace
28: 0x76636321343a - <rustc_hir_analysis[79635f1fa32cabba]::collect::CollectItemTypesVisitor as rustc_hir[7361c4e2026484da]::intravisit::Visitor>::visit_item
29: 0x76636320987f - rustc_hir_analysis[79635f1fa32cabba]::check::wfcheck::check_well_formed
30: 0x766363209773 - rustc_query_impl[51661ff1e116d73e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[51661ff1e116d73e]::query_impl::check_well_formed::dynamic_query::{closure#2}::{closure#0}, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>
31: 0x766363208f00 - rustc_query_system[2cf76174bd7e0814]::query::plumbing::try_execute_query::<rustc_query_impl[51661ff1e116d73e]::DynamicConfig<rustc_query_system[2cf76174bd7e0814]::query::caches::VecCache<rustc_hir[7361c4e2026484da]::hir_id::OwnerId, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[51661ff1e116d73e]::plumbing::QueryCtxt, false>
32: 0x766363208c7f - rustc_query_impl[51661ff1e116d73e]::query_impl::check_well_formed::get_query_non_incr::__rust_end_short_backtrace
33: 0x766363206bd3 - rustc_hir_analysis[79635f1fa32cabba]::check::wfcheck::check_mod_type_wf
34: 0x766363206a1b - rustc_query_impl[51661ff1e116d73e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[51661ff1e116d73e]::query_impl::check_mod_type_wf::dynamic_query::{closure#2}::{closure#0}, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>
35: 0x7663636a3870 - rustc_query_system[2cf76174bd7e0814]::query::plumbing::try_execute_query::<rustc_query_impl[51661ff1e116d73e]::DynamicConfig<rustc_query_system[2cf76174bd7e0814]::query::caches::DefaultCache<rustc_span[c8203a7ebedcd79e]::def_id::LocalModDefId, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[51661ff1e116d73e]::plumbing::QueryCtxt, false>
36: 0x7663636a361b - rustc_query_impl[51661ff1e116d73e]::query_impl::check_mod_type_wf::get_query_non_incr::__rust_end_short_backtrace
37: 0x766362ec418f - rustc_hir_analysis[79635f1fa32cabba]::check_crate
38: 0x766362ed816a - rustc_interface[e7aac3eeb74c4c0c]::passes::analysis
39: 0x766362ed7cc7 - rustc_query_impl[51661ff1e116d73e]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[51661ff1e116d73e]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>
40: 0x766363a54ce5 - rustc_query_system[2cf76174bd7e0814]::query::plumbing::try_execute_query::<rustc_query_impl[51661ff1e116d73e]::DynamicConfig<rustc_query_system[2cf76174bd7e0814]::query::caches::SingleCache<rustc_middle[29872c107b60a246]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[51661ff1e116d73e]::plumbing::QueryCtxt, false>
41: 0x766363a54a49 - rustc_query_impl[51661ff1e116d73e]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
42: 0x7663638eec22 - rustc_interface[e7aac3eeb74c4c0c]::interface::run_compiler::<core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>, rustc_driver_impl[b1693766bfe96bed]::run_compiler::{closure#0}>::{closure#0}
43: 0x7663639cc01d - std[8cce646dcc9f51a2]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[e7aac3eeb74c4c0c]::util::run_in_thread_with_globals<rustc_interface[e7aac3eeb74c4c0c]::util::run_in_thread_pool_with_globals<rustc_interface[e7aac3eeb74c4c0c]::interface::run_compiler<core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>, rustc_driver_impl[b1693766bfe96bed]::run_compiler::{closure#0}>::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>
44: 0x7663639cbe2a - <<std[8cce646dcc9f51a2]::thread::Builder>::spawn_unchecked_<rustc_interface[e7aac3eeb74c4c0c]::util::run_in_thread_with_globals<rustc_interface[e7aac3eeb74c4c0c]::util::run_in_thread_pool_with_globals<rustc_interface[e7aac3eeb74c4c0c]::interface::run_compiler<core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>, rustc_driver_impl[b1693766bfe96bed]::run_compiler::{closure#0}>::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[7ebb3dbf9c5383ca]::result::Result<(), rustc_span[c8203a7ebedcd79e]::ErrorGuaranteed>>::{closure#1} as core[7ebb3dbf9c5383ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
45: 0x76636503728b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hea2f762c1fe3db14
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/alloc/src/boxed.rs:2018:9
46: 0x76636503728b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h79ea2eedb7e4df53
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/alloc/src/boxed.rs:2018:9
47: 0x76636503728b - std::sys::pal::unix::thread::Thread::new::thread_start::h83279d19c2446390
at /rustc/537aab7a2e7fe9cdf50b5ff18485e0793cd8db62/library/std/src/sys/pal/unix/thread.rs:108:17
48: 0x766364dd555a - <unknown>
49: 0x766364e52a3c - <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: rustc 1.79.0-nightly (537aab7a2 2024-04-08) running on x86_64-unknown-linux-gnu
query stack during panic:
#0 [type_of] expanding type alias `Always`
#1 [check_well_formed] checking that `Always` is well-formed
#2 [check_mod_type_wf] checking that types are well-formed in top-level module
#3 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 5 previous errors
Some errors have detailed explanations: E0601, E0658.
For more information about an error, try `rustc --explain E0601`.
I clicked the tracking issue from
= note: see issue #54882 #54882 for more information
= help: add #![feature(pattern_types)]
to the crate attributes to enable
= note: this compiler was built on 2024-04-08; consider upgrading it if it is out of date
which is about an optimize
attribute and does not mention patterns or links to a related PR at all? 🤔