Skip to content

compiler panics in rust 2024 #7

@FaintentDev

Description

@FaintentDev

whenever i try to recompile after making any change in my project that has a #[borrowme] struct the compiler panics:

error: internal compiler error: encountered incremental compilation error with evaluate_obligation(5fe7f4a14f6f300-1846e1cce09905df)
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p borrowme` or `cargo clean` to allow your project to compile
  = note: Please follow the instructions below to create a bug report with the provided information
  = note: See <https://github.com/rust-lang/rust/issues/84970> for more information


thread 'rustc' panicked at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688\compiler\rustc_query_system\src\query\plumbing.rs:731:9:
Found unstable fingerprints for evaluate_obligation(5fe7f4a14f6f300-1846e1cce09905df): Ok(EvaluatedToOk)
stack backtrace:
   0:     0x7ffa441401c1 - std::backtrace_rs::backtrace::dbghelp64::trace
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\..\..\backtrace\src\backtrace\dbghelp64.rs:91
   1:     0x7ffa441401c1 - std::backtrace_rs::backtrace::trace_unsynchronized
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
   2:     0x7ffa441401c1 - std::sys::backtrace::_print_fmt
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\sys\backtrace.rs:66
   3:     0x7ffa441401c1 - std::sys::backtrace::impl$0::print::impl$0::fmt
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\sys\backtrace.rs:39
   4:     0x7ffa44172cca - core::fmt::rt::Argument::fmt
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\core\src\fmt\rt.rs:177
   5:     0x7ffa44172cca - core::fmt::write
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\core\src\fmt\mod.rs:1440
   6:     0x7ffa44135b07 - std::io::Write::write_fmt<std::sys::pal::windows::stdio::Stderr>
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\io\mod.rs:1887
   7:     0x7ffa44140005 - std::sys::backtrace::BacktraceLock::print
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\sys\backtrace.rs:42
   8:     0x7ffa44142fad - std::panicking::default_hook::closure$1
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\panicking.rs:295
   9:     0x7ffa44142d10 - std::panicking::default_hook
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\panicking.rs:322
  10:     0x7ffa4573533a - core[13dd8dac7b8322e0]::slice::sort::unstable::heapsort::heapsort::<((rustc_lint_defs[84e5be47eb57ee2d]::Level, &str), usize), <((rustc_lint_defs[84e5be47eb57ee2d]::Level, &str), usize) as core[13dd8dac7b8322e0]::cmp::PartialOrd>::lt>
  11:     0x7ffa4414389e - alloc::boxed::impl$30::call
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\alloc\src\boxed.rs:2007
  12:     0x7ffa4414389e - std::panicking::rust_panic_with_hook
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\panicking.rs:836
  13:     0x7ffa441435f9 - std::panicking::begin_panic_handler::closure$0
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\panicking.rs:701
  14:     0x7ffa44140c9f - std::sys::backtrace::__rust_end_short_backtrace<std::panicking::begin_panic_handler::closure_env$0,never$>
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\sys\backtrace.rs:168
  15:     0x7ffa441431fe - std::panicking::begin_panic_handler
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\panicking.rs:692
  16:     0x7ffa46ff2e41 - core::panicking::panic_fmt
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\core\src\panicking.rs:75
  17:     0x7ffa46cae415 - rustc_query_system[64bfa5981be634dd]::query::plumbing::incremental_verify_ich_failed::<rustc_middle[76d8ed0cc97ff880]::ty::context::TyCtxt>
  18:     0x7ffa43cb00e3 - RINvNtNtCs8Ehw5TsioVt_18rustc_query_system5query8plumbing17try_execute_queryINtCshEjB07rFK3d_16rustc_query_impl13DynamicConfigINtNtCsfk1N0zTQ1Ep_21rustc_data_structures9vec_cache8VecCacheNtNtCs8yPNJtyUAIM_10rustc_span6def_id8CrateNumINtNtNtCsacCxZy8tNDM_12
  19:     0x7ffa44dc3671 - RINvNtNtCs8Ehw5TsioVt_18rustc_query_system5query8plumbing17try_execute_queryINtCshEjB07rFK3d_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCs1vmCzCB8wM7_13rustc_type_ir9canonical19CanonicalQueryInputNtNtNtCsacCxZy8tNDM_12rustc_middle2t
  20:     0x7ffa44eec5f7 - rustc_query_impl[cd955f68236d2689]::plumbing::query_key_hash_verify_all
  21:     0x7ffa45070652 - <rustc_infer[ef68469ba0642744]::infer::InferCtxt as rustc_trait_selection[7269f249f2930fa9]::traits::query::evaluate_obligation::InferCtxtExt>::evaluate_obligation_no_overflow
  22:     0x7ffa4503961c - rustc_trait_selection[7269f249f2930fa9]::traits::type_known_to_meet_bound_modulo_regions
  23:     0x7ffa44d39ba9 - rustc_ty_utils[6990bede2ce531c8]::common_traits::is_sized_raw
  24:     0x7ffa43d206b5 - <alloc[f42caee64323a5c9]::sync::Arc<rustc_session[a1380b7e7bd1e9c4]::cstore::CrateSource>>::drop_slow
  25:     0x7ffa43cf4973 - <alloc[f42caee64323a5c9]::sync::Arc<rustc_session[a1380b7e7bd1e9c4]::cstore::CrateSource>>::drop_slow
  26:     0x7ffa44ddc791 - RINvNtNtCs8Ehw5TsioVt_18rustc_query_system5query8plumbing17try_execute_queryINtCshEjB07rFK3d_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCsacCxZy8tNDM_12rustc_middle2ty20PseudoCanonicalInputNtB2w_2TyEINtNtNtB2y_5query5erase6ErasedAhj
  27:     0x7ffa43d3f15d - rustc_query_impl[cd955f68236d2689]::query_system
  28:     0x7ffa455b3bf2 - <rustc_middle[76d8ed0cc97ff880]::query::on_disk_cache::CacheEncoder as rustc_span[63b9ae5433b881ea]::SpanEncoder>::encode_def_id
  29:     0x7ffa45520b27 - <rustc_middle[76d8ed0cc97ff880]::ty::Ty>::is_unpin
  30:     0x7ffa44d2978d - RINvNtNtNtNtCs1HK5c7eE0eW_4core5slice4sort6stable9quicksort9quicksortmNCINvMNtCskXJAKvAmGc7_5alloc5sliceSm11sort_by_keyRNtNtCs8yPNJtyUAIM_10rustc_span6symbol6SymbolNCINvXs3_NtNtCsfk1N0zTQ1Ep_21rustc_data_structures10sorted_map9index_mapINtB2L_19SortedIndex
  31:     0x7ffa44d6312d - rustc_ty_utils[6990bede2ce531c8]::ty::asyncness
  32:     0x7ffa44d33343 - rustc_ty_utils[6990bede2ce531c8]::abi::fn_abi_of_instance
  33:     0x7ffa44eda646 - rustc_query_impl[cd955f68236d2689]::plumbing::query_key_hash_verify_all
  34:     0x7ffa43cfeabb - <alloc[f42caee64323a5c9]::sync::Arc<rustc_session[a1380b7e7bd1e9c4]::cstore::CrateSource>>::drop_slow
  35:     0x7ffa44de9713 - RINvNtNtCs8Ehw5TsioVt_18rustc_query_system5query8plumbing17try_execute_queryINtCshEjB07rFK3d_16rustc_query_impl13DynamicConfigINtNtB4_6caches12DefaultCacheINtNtCsacCxZy8tNDM_12rustc_middle2ty20PseudoCanonicalInputTNtNtB2w_8instance8InstanceRINtNtB2w_4list7
  36:     0x7ffa44eea07a - rustc_query_impl[cd955f68236d2689]::plumbing::query_key_hash_verify_all
  37:     0x7ffa4420fb98 - <hashbrown[73b62de1c9ecea6c]::raw::RawTable<((&rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, usize), &rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata)>>::reserve_rehash::<hashbrown[73b62de1c9ecea6c]::map::make_hasher<(&rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, usize), &rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, rustc_hash[6bee861355e6eab]::FxBuildHasher>::{closure#0}>
  38:     0x7ffa442571a9 - <rustc_codegen_llvm[41ba621bace2ee9a]::builder::Builder as rustc_codegen_ssa[3fc74d1e4610d817]::traits::builder::BuilderMethods>::call
  39:     0x7ffa441f3997 - <hashbrown[73b62de1c9ecea6c]::raw::RawTable<((&rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, usize), &rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata)>>::reserve_rehash::<hashbrown[73b62de1c9ecea6c]::map::make_hasher<(&rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, usize), &rustc_codegen_llvm[41ba621bace2ee9a]::llvm_::ffi::Metadata, rustc_hash[6bee861355e6eab]::FxBuildHasher>::{closure#0}>
  40:     0x7ffa44253e27 - <rustc_target[662d8d86741bac36]::callconv::FnAbi<rustc_middle[76d8ed0cc97ff880]::ty::Ty> as rustc_codegen_llvm[41ba621bace2ee9a]::abi::FnAbiLlvmExt>::apply_attrs_callsite
  41:     0x7ffa411bdf77 - RINvNtNtNtNtCs1HK5c7eE0eW_4core5slice4sort6stable9quicksort9quicksortTNtNtCskXJAKvAmGc7_5alloc6string6StringB16_ENCINvMNtB1a_5sliceSB15_7sort_byNCINvXs1g_NtNtNtB1a_11collections5btree3mapINtB2s_8BTreeMapB16_B16_EINtNtNtNtBa_4iter6traits7collect12FromIterat
  42:     0x7ffa4121c0cf - <rustc_codegen_llvm[41ba621bace2ee9a]::LlvmCodegenBackend as rustc_codegen_ssa[3fc74d1e4610d817]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
  43:     0x7ffa411a8857 - llvm::DenseMap<llvm::StructType * __ptr64,llvm::detail::DenseSetEmpty,llvm::IRMover::StructTypeKeyInfo,llvm::detail::DenseSetPair<llvm::StructType * __ptr64> >::~DenseMap<llvm::StructType * __ptr64,llvm::detail::DenseSetEmpty,llvm::IRMover::StructTypeKeyIn
  44:     0x7ffa4121f229 - <rustc_codegen_llvm[41ba621bace2ee9a]::LlvmCodegenBackend as rustc_codegen_ssa[3fc74d1e4610d817]::traits::backend::CodegenBackend>::codegen_crate
  45:     0x7ffa4117c8a1 - <rustc_interface[891a09a0cea1e8ed]::queries::Linker>::codegen_and_build_linker
  46:     0x7ffa4113e41a - RINvNtNtCsaor5jccb5ur_3std3sys9backtrace28___rust_begin_short_backtraceNCNCNCINvMNtB6_6threadNtB1h_7Builder16spawn_unchecked_INtNtCskXJAKvAmGc7_5alloc5boxed3BoxDINtNtNtCs1HK5c7eE0eW_4core3ops8function6FnOnceuEp6OutputuNtNtB2G_6marker4SendEL_EuEs_000uECs13K
  47:     0x7ffa41136d9e - RINvNtNtCsaor5jccb5ur_3std3sys9backtrace28___rust_begin_short_backtraceNCNCNCINvMNtB6_6threadNtB1h_7Builder16spawn_unchecked_INtNtCskXJAKvAmGc7_5alloc5boxed3BoxDINtNtNtCs1HK5c7eE0eW_4core3ops8function6FnOnceuEp6OutputuNtNtB2G_6marker4SendEL_EuEs_000uECs13K
  48:     0x7ffa4112fe09 - RINvNtNtCsaor5jccb5ur_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCsbLMVCc8CHyP_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCs13KITJ2Zc2G_17rustc_driver_i
  49:     0x7ffa41142ea5 - RINvNtNtCsaor5jccb5ur_3std3sys9backtrace28___rust_begin_short_backtraceNCNCNCINvMNtB6_6threadNtB1h_7Builder16spawn_unchecked_INtNtCskXJAKvAmGc7_5alloc5boxed3BoxDINtNtNtCs1HK5c7eE0eW_4core3ops8function6FnOnceuEp6OutputuNtNtB2G_6marker4SendEL_EuEs_000uECs13K
  50:     0x7ffa441557cd - alloc::boxed::impl$28::call_once
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\alloc\src\boxed.rs:1993
  51:     0x7ffa441557cd - alloc::boxed::impl$28::call_once
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\alloc\src\boxed.rs:1993
  52:     0x7ffa441557cd - std::sys::pal::windows::thread::impl$0::new::thread_start
                               at /rustc/4d91de4e48198da2e33413efdcd9cd2cc0c46688/library\std\src\sys\pal\windows\thread.rs:56
  53:     0x7ffaf5107374 - BaseThreadInitThunk
  54:     0x7ffaf685cc91 - RtlUserThreadStart

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

note: rustc 1.85.0 (4d91de4e4 2025-02-17) running on x86_64-pc-windows-msvc

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 [evaluate_obligation] evaluating trait selection obligation `alloc::vec::Vec<OwnedPlatformLink>: core::marker::Unpin`
#1 [is_unpin_raw] computing whether `alloc::vec::Vec<OwnedPlatformLink>` is `Unpin`
end of query stack

im using a struct like so:

use borrowme::borrowme;
use serde::{Deserialize, Serialize};

#[borrowme]
#[derive(Serialize, Debug, Clone, Default, PartialEq, Eq)]
pub struct Object<'a> {
	pub links: Vec<PlatformLink<'a>>,
}

#[borrowme]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub enum PlatformLink<'a> {
	ThisPlatform(&'a str),
	OtherPlatform {
		platform_name: &'a str,
		url: &'a str,
	},
}

the only workarounds ive found is either

  • using rust edition 2021 with rustc 1.84.0 or older
  • disabling incremental compilation in my cargo.toml:
[profile.dev]
incremental = false

[profile.release]
incremental = false

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions