Description
Code
fn main() {
let sides: Vec<_> = Vec::from([[[0, 1], [2, 3]], [[4, 5], [6, 7]]]);
let mut side = sides.iter();
while let Some(points) = side.next() {
match &points[..] {
[p1, p2] => match [p1[..], p2[..]] {
[[x1, y1], [x2, y2]] => {}
_ => (),
},
_ => (),
}
}
}
Meta
Bug persists in nighly and beta version as well as 1.72 stable.
rustc --version --verbose
:
rustc 1.72.0 (5680fa18f 2023-08-23)
binary: rustc
commit-hash: 5680fa18feaa87f3ff04063800aec256c3d4b4be
commit-date: 2023-08-23
host: x86_64-pc-windows-msvc
release: 1.72.0
LLVM version: 16.0.5
Error output
error[E0161]: cannot move a value of type `[i32]`
--> advent\src\main.rs:55:32
|
55 | [p1, p2] => match [p1[..], p2[..]] {
| ^^^^^^ the size of `[i32]` cannot be statically determined
error[E0161]: cannot move a value of type `[i32]`
--> advent\src\main.rs:55:40
|
55 | [p1, p2] => match [p1[..], p2[..]] {
| ^^^^^^ the size of `[i32]` cannot be statically determined
error[E0508]: cannot move out of type `[i32]`, a non-copy slice
--> advent\src\main.rs:55:32
|
55 | [p1, p2] => match [p1[..], p2[..]] {
| ^^^^^^
| |
| cannot move out of here
| move occurs because value has type `[i32]`, which does not implement the `Copy` trait
error[E0508]: cannot move out of type `[i32]`, a non-copy slice
--> advent\src\main.rs:55:40
|
55 | [p1, p2] => match [p1[..], p2[..]] {
| ^^^^^^
| |
| cannot move out of here
| move occurs because value has type `[i32]`, which does not implement the `Copy` trait
thread 'rustc' panicked at /rustc/58eefc33adf769a1abe12ad94b3e6811185b4ce5\compiler\rustc_const_eval\src\interpret\projection.rs:54:9:
assertion failed: layout.is_sized()
error: 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
warning: the ICE couldn't be written to `G:\programing\rust\adventOfRust2021\rustc-ice-2023-08-25T06:30:50.7890072Z-12864.txt`: The filename, directory name, or volume label syntax is incorrect. (os error 123)
note: compiler flags: --crate-type bin -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [mir_drops_elaborated_and_const_checked] elaborating drops for `main`
#1 [analysis] running analysis passes on this crate
end of query stack
Some errors have detailed explanations: E0161, E0508.
Backtrace
stack backtrace:
0: 0x7ff8045a7c1a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hee39371e3afa4cac
1: 0x7ff8045dc60b - core::fmt::write::h784b30e5a150ff2a
2: 0x7ff80459d2e1 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::h3f167a4d9752f39a
3: 0x7ff8045a799a - std::sys_common::backtrace::lock::h9a1e39803fc5b76e
4: 0x7ff8045ab2c3 - std::panicking::panic_hook_with_disk_dump::h1e385a540d361b4b
5: 0x7ff8045aae6b - std::panicking::panic_hook_with_disk_dump::h1e385a540d361b4b
6: 0x7fffe741c9d0 - rustc_driver_impl[d4e615167d320efa]::ice_path
7: 0x7ff8045abc7e - std::panicking::rust_panic_with_hook::h002d10abbdeacf8c
8: 0x7ff8045ab99a - <std::panicking::begin_panic_handler::StrPanicPayload as core::panic::BoxMeUp>::get::h591fe4f43155d48c
9: 0x7ff8045a88d9 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hee39371e3afa4cac
10: 0x7ff8045ab6e0 - rust_begin_unwind
11: 0x7ff804611895 - core::panicking::panic_fmt::hbce22f0544c0bed4
12: 0x7ff804611942 - core::panicking::panic::h1ba68580d5d60f4d
13: 0x7fffe5ea62e5 - <rustc_mir_transform[2645dc67277a86ad]::elaborate_box_derefs::ElaborateBoxDerefVisitor as rustc_middle[d78655e0e9e137c2]::mir::visit::MutVisitor>::visit_place
14: 0x7fffe5eae3b6 - <rustc_mir_transform[2645dc67277a86ad]::elaborate_box_derefs::ElaborateBoxDerefVisitor as rustc_middle[d78655e0e9e137c2]::mir::visit::MutVisitor>::visit_place
15: 0x7fffe684bd18 - <rustc_mir_transform[2645dc67277a86ad]::remove_zsts::Replacer as rustc_middle[d78655e0e9e137c2]::mir::visit::MutVisitor>::visit_operand
16: 0x7fffe67f7c07 - <rustc_mir_transform[2645dc67277a86ad]::const_prop_lint::ConstPropagator as rustc_middle[d78655e0e9e137c2]::mir::visit::Visitor>::visit_basic_block_data
17: 0x7fffe67f66bf - <rustc_mir_transform[2645dc67277a86ad]::const_prop_lint::ConstProp as rustc_mir_transform[2645dc67277a86ad]::pass_manager::MirLint>::run_lint
18: 0x7fffe678b2a6 - <rustc_mir_transform[2645dc67277a86ad]::simplify_comparison_integral::SimplifyComparisonIntegral as rustc_middle[d78655e0e9e137c2]::mir::MirPass>::run_pass
19: 0x7fffe6d98acf - <rustc_query_impl[57d29b735ebd9d25]::plumbing::QueryCtxt as rustc_query_system[8f5a974417d62c95]::query::QueryContext>::load_side_effects
20: 0x7fffe6dde3cf - <rustc_query_impl[57d29b735ebd9d25]::plumbing::QueryCtxt as rustc_query_system[8f5a974417d62c95]::query::QueryContext>::load_side_effects
21: 0x7fffe6e5d362 - <rustc_query_impl[57d29b735ebd9d25]::plumbing::QueryCtxt as rustc_query_system[8f5a974417d62c95]::query::QueryContext>::load_side_effects
22: 0x7fffe6135f32 - rustc_query_impl[57d29b735ebd9d25]::profiling_support::alloc_self_profile_query_strings
23: 0x7fffe64bc29f - once_cell[3c15e2ee3bc16d65]::imp::initialize_or_wait
24: 0x7fffe365a850 - rustc_interface[c3ab73a2be863b1d]::passes::analysis
25: 0x7fffe6094add - rustc_query_impl[57d29b735ebd9d25]::profiling_support::alloc_self_profile_query_strings
26: 0x7fffe605b1e9 - <windows_sys[47e41ba1c594b9f4]::Windows::Win32::System::Diagnostics::Debug::MINIDUMP_HEADER as core[79da6043770374cc]::clone::Clone>::clone
27: 0x7fffe60c4865 - rustc_query_impl[57d29b735ebd9d25]::profiling_support::alloc_self_profile_query_strings
28: 0x7fffe60e3cc7 - rustc_query_impl[57d29b735ebd9d25]::profiling_support::alloc_self_profile_query_strings
29: 0x7fffe613361c - rustc_query_impl[57d29b735ebd9d25]::profiling_support::alloc_self_profile_query_strings
30: 0x7fffe361cb41 - rustc_driver_impl[d4e615167d320efa]::args::arg_expand_all
31: 0x7fffe3626b13 - rustc_driver_impl[d4e615167d320efa]::args::arg_expand_all
32: 0x7fffe363c895 - <rustc_middle[d78655e0e9e137c2]::ty::SymbolName as core[79da6043770374cc]::fmt::Display>::fmt
33: 0x7fffe363d696 - <rustc_middle[d78655e0e9e137c2]::ty::SymbolName as core[79da6043770374cc]::fmt::Display>::fmt
34: 0x7ff8045bee9c - std::sys::windows::thread::Thread::new::h9f737b48628a624d
35: 0x7ff86b517614 - BaseThreadInitThunk
36: 0x7ff86c8626b1 - RtlUserThreadStart