Skip to content

Assertion failed in rustc_hir_typeck\src\gather_locals.rs #144849

@MizardX

Description

@MizardX

I encountered this panic due to a typo while solving a LeetCode problem. I accidentally used fruits[0] (type Vec<i32>) instead of fruits[0][1].

Code

// main.rs
struct Solution;

impl Solution {
    pub fn max_total_fruits(fruits: Vec<Vec<i32>>) -> i32 {
        fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
    }
}

fn main() {
    let res = Solution::max_total_fruits(vec![]);
    println!("{res}");
}

Meta

rustc --version --verbose:

rustc 1.88.0 (6b00bc388 2025-06-23)
binary: rustc
commit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc
commit-date: 2025-06-23
host: x86_64-pc-windows-msvc
release: 1.88.0
LLVM version: 20.1.5

The panic does not occur in nightly:

rustc 1.90.0-nightly (ba7e63b63 2025-07-29)
binary: rustc
commit-hash: ba7e63b63871a429533c189adbfb1d9a6337e000
commit-date: 2025-07-29
host: x86_64-pc-windows-msvc
release: 1.90.0-nightly
LLVM version: 20.1.8

Error output

The panic occurs both for cargo build and cargo check. Here is the output for cargo check:

    Checking _2106 v0.1.0 (C:\utv\leetcode\2106)

thread 'rustc' panicked at compiler\rustc_hir_typeck\src\gather_locals.rs:112:17:
assertion `left == right` failed
  left: Some(?19t)
 right: None
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

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.88.0 (6b00bc388 2025-06-23) 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 [typeck] type-checking `<impl at src\main.rs:3:1: 3:14>::max_total_fruits`
#1 [analysis] running analysis passes on this crate
end of query stack
note: no errors encountered even though delayed bugs were created

note: those delayed bugs will now be shown as internal compiler errors

error: internal compiler error: this path really should be doomed...
 --> src\main.rs:5:19
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                   ^
  |
note: delayed at compiler\rustc_hir_typeck\src\op.rs:1003:28 - disabled backtrace
 --> src\main.rs:5:19
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                   ^

error: internal compiler error: `usize` overridden by `usize` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).14) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:28
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                            ^^^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28 - disabled backtrace
 --> src\main.rs:5:28
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                            ^^^^^

error: internal compiler error: `Option<usize>` overridden by `Option<usize>` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).13) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:21
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                     ^^^^^^^^^^^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28 - disabled backtrace
 --> src\main.rs:5:21
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                     ^^^^^^^^^^^^^

error: internal compiler error: `_` overridden by `_` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).27) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:40
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                                        ^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28 - disabled backtrace
 --> src\main.rs:5:40
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                                        ^^^

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.88.0 (6b00bc388 2025-06-23) 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:
end of query stack
error: could not compile `_2106` (bin "_2106")

Caused by:
  process didn't exit successfully: `C:\Users\mizar\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name _2106 --edition=2024 src\main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg cfg(docsrs,test) --check-cfg "cfg(feature, values())" -C metadata=db2ef639f97c5707 -C extra-filename=-5585fbebf3b302dc --out-dir C:\utv\leetcode\2106\target\debug\deps -C incremental=C:\utv\leetcode\2106\target\debug\incremental -L dependency=C:\utv\leetcode\2106\target\debug\deps` (exit code: 101)
Backtrace

    Checking _2106 v0.1.0 (C:\utv\leetcode\2106)

thread 'rustc' panicked at compiler\rustc_hir_typeck\src\gather_locals.rs:112:17:
assertion `left == right` failed
  left: Some(?19t)
 right: None
stack backtrace:
   0: std::panicking::begin_panic_handler
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\panicking.rs:697
   1: core::panicking::panic_fmt
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\core\src\panicking.rs:75
   2: core::panicking::assert_failed_inner
             at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\core\src\panicking.rs:428
   3: core::panicking::assert_failed::<core::option::Option<rustc_middle::ty::Ty>, core::option::Option<rustc_middle::ty::Ty>>
   4: <rustc_hir_typeck::gather_locals::GatherLocalsVisitor as rustc_hir::intravisit::Visitor>::visit_pat
   5: rustc_hir_typeck::typeck
   6: rustc_hir_typeck::typeck
   7: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   8: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
   9: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  10: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  11: rustc_hir_typeck::method::probe::method_autoderef_steps
  12: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  13: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  14: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
  15: rustc_hir_typeck::typeck
  16: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
  17: rustc_hir_typeck::typeck
  18: rustc_query_impl::plumbing::query_key_hash_verify_all
  19: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id10LocalDefIdINtNtNtCs5BYDmTWcnKQ
  20: rustc_query_impl::plumbing::query_key_hash_verify_all
  21: RINvMs6_NtCsdskSw9gvGQH_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCslPPgtOmP3yY_8indexmap3map4core8get_hashTNtNtNtCs5BYDmTWcnKQ_12rustc_middle2ty9predicate6ClauseNtNtCs5K2xb0UU2Jw_10rustc_span13span_encoding4SpanEuE0ECscM8KGpa8HpW_18rustc_hir
  22: rustc_hir_analysis::check_crate
  23: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
  24: rustc_interface::passes::analysis
  25: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id8CrateNumINtNtNtCs5BYDmTWcnKQ_12
  26: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs5BYDmTWcnKQ_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
  27: rustc_query_impl::query_system
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.88.0 (6b00bc388 2025-06-23) 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 [typeck] type-checking `<impl at src\main.rs:3:1: 3:14>::max_total_fruits`
#1 [analysis] running analysis passes on this crate
end of query stack
note: no errors encountered even though delayed bugs were created

note: those delayed bugs will now be shown as internal compiler errors

error: internal compiler error: this path really should be doomed...
 --> src\main.rs:5:19
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                   ^
  |
note: delayed at compiler\rustc_hir_typeck\src\op.rs:1003:28
         0: std::backtrace_rs::backtrace::win64::trace
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
         1: std::backtrace_rs::backtrace::trace_unsynchronized
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
         2: std::backtrace::Backtrace::create
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:331
         3: std::backtrace::Backtrace::capture
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:296
         4: <rustc_errors::DiagCtxtHandle>::flush_delayed
         5: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         6: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
         7: <hashbrown::raw::RawTable<usize>>::reserve_rehash::<indexmap::map::core::get_hash<(rustc_middle::ty::predicate::Predicate, rustc_middle::traits::ObligationCause), ()>::{closure#0}>
         8: rustc_hir_typeck::method::probe::method_autoderef_steps
         9: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        10: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        11: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        12: rustc_hir_typeck::typeck
        13: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
        14: rustc_hir_typeck::typeck
        15: rustc_query_impl::plumbing::query_key_hash_verify_all
        16: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id10LocalDefIdINtNtNtCs5BYDmTWcnKQ
        17: rustc_query_impl::plumbing::query_key_hash_verify_all
        18: RINvMs6_NtCsdskSw9gvGQH_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCslPPgtOmP3yY_8indexmap3map4core8get_hashTNtNtNtCs5BYDmTWcnKQ_12rustc_middle2ty9predicate6ClauseNtNtCs5K2xb0UU2Jw_10rustc_span13span_encoding4SpanEuE0ECscM8KGpa8HpW_18rustc_hir
        19: rustc_hir_analysis::check_crate
        20: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
        21: rustc_interface::passes::analysis
        22: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id8CrateNumINtNtNtCs5BYDmTWcnKQ_12
        23: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs5BYDmTWcnKQ_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
        24: rustc_query_impl::query_system
        25: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        26: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        27: RINvNtNtCsja4ZeDc2XAj_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCshGilUj5gLc1_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCsbbk6E3yTTQl_17rustc_driver_i
        28: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        29: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        30: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        31: std::sys::pal::windows::thread::impl$0::new::thread_start
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\sys\pal\windows\thread.rs:56
        32: BaseThreadInitThunk
        33: RtlUserThreadStart
 --> src\main.rs:5:19
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                   ^

error: internal compiler error: `usize` overridden by `usize` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).14) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:28
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                            ^^^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28
         0: std::backtrace_rs::backtrace::win64::trace
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
         1: std::backtrace_rs::backtrace::trace_unsynchronized
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
         2: std::backtrace::Backtrace::create
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:331
         3: std::backtrace::Backtrace::capture
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:296
         4: <rustc_errors::DiagCtxtHandle>::flush_delayed
         5: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         6: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
         7: <hashbrown::raw::RawTable<usize>>::reserve_rehash::<indexmap::map::core::get_hash<(rustc_middle::ty::predicate::Predicate, rustc_middle::traits::ObligationCause), ()>::{closure#0}>
         8: <rustc_hir_typeck::fn_ctxt::FnCtxt as rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::record_ty
         9: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_ty
        10: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::instantiate_value_path::CtorGenericArgsCtxt as rustc_hir_analysis::hir_ty_lowering::GenericArgsLowerer>::provided_kind
        11: rustc_hir_typeck::typeck
        12: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        13: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        14: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        15: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        16: rustc_hir_typeck::method::probe::method_autoderef_steps
        17: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        18: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        19: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        20: rustc_hir_typeck::typeck
        21: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
        22: rustc_hir_typeck::typeck
        23: rustc_query_impl::plumbing::query_key_hash_verify_all
        24: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id10LocalDefIdINtNtNtCs5BYDmTWcnKQ
        25: rustc_query_impl::plumbing::query_key_hash_verify_all
        26: RINvMs6_NtCsdskSw9gvGQH_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCslPPgtOmP3yY_8indexmap3map4core8get_hashTNtNtNtCs5BYDmTWcnKQ_12rustc_middle2ty9predicate6ClauseNtNtCs5K2xb0UU2Jw_10rustc_span13span_encoding4SpanEuE0ECscM8KGpa8HpW_18rustc_hir
        27: rustc_hir_analysis::check_crate
        28: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
        29: rustc_interface::passes::analysis
        30: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id8CrateNumINtNtNtCs5BYDmTWcnKQ_12
        31: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs5BYDmTWcnKQ_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
        32: rustc_query_impl::query_system
        33: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        34: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        35: RINvNtNtCsja4ZeDc2XAj_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCshGilUj5gLc1_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCsbbk6E3yTTQl_17rustc_driver_i
        36: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        37: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        38: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        39: std::sys::pal::windows::thread::impl$0::new::thread_start
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\sys\pal\windows\thread.rs:56
        40: BaseThreadInitThunk
        41: RtlUserThreadStart
 --> src\main.rs:5:28
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                            ^^^^^

error: internal compiler error: `Option<usize>` overridden by `Option<usize>` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).13) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:21
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                     ^^^^^^^^^^^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28
         0: std::backtrace_rs::backtrace::win64::trace
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
         1: std::backtrace_rs::backtrace::trace_unsynchronized
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
         2: std::backtrace::Backtrace::create
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:331
         3: std::backtrace::Backtrace::capture
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:296
         4: <rustc_errors::DiagCtxtHandle>::flush_delayed
         5: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         6: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
         7: <hashbrown::raw::RawTable<usize>>::reserve_rehash::<indexmap::map::core::get_hash<(rustc_middle::ty::predicate::Predicate, rustc_middle::traits::ObligationCause), ()>::{closure#0}>
         8: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
         9: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        10: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        11: rustc_hir_typeck::method::probe::method_autoderef_steps
        12: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        13: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        14: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        15: rustc_hir_typeck::typeck
        16: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
        17: rustc_hir_typeck::typeck
        18: rustc_query_impl::plumbing::query_key_hash_verify_all
        19: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id10LocalDefIdINtNtNtCs5BYDmTWcnKQ
        20: rustc_query_impl::plumbing::query_key_hash_verify_all
        21: RINvMs6_NtCsdskSw9gvGQH_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCslPPgtOmP3yY_8indexmap3map4core8get_hashTNtNtNtCs5BYDmTWcnKQ_12rustc_middle2ty9predicate6ClauseNtNtCs5K2xb0UU2Jw_10rustc_span13span_encoding4SpanEuE0ECscM8KGpa8HpW_18rustc_hir
        22: rustc_hir_analysis::check_crate
        23: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
        24: rustc_interface::passes::analysis
        25: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id8CrateNumINtNtNtCs5BYDmTWcnKQ_12
        26: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs5BYDmTWcnKQ_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
        27: rustc_query_impl::query_system
        28: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        29: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        30: RINvNtNtCsja4ZeDc2XAj_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCshGilUj5gLc1_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCsbbk6E3yTTQl_17rustc_driver_i
        31: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        32: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        33: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        34: std::sys::pal::windows::thread::impl$0::new::thread_start
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\sys\pal\windows\thread.rs:56
        35: BaseThreadInitThunk
        36: RtlUserThreadStart
 --> src\main.rs:5:21
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                     ^^^^^^^^^^^^^

error: internal compiler error: `_` overridden by `_` for HirId(DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits).27) in DefId(0:6 ~ _2106[6729]::{impl#0}::max_total_fruits)
 --> src\main.rs:5:40
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                                        ^^^
  |
note: delayed at compiler\rustc_hir_typeck\src\fn_ctxt\_impl.rs:159:28
         0: std::backtrace_rs::backtrace::win64::trace
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\win64.rs:85
         1: std::backtrace_rs::backtrace::trace_unsynchronized
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\..\..\backtrace\src\backtrace\mod.rs:66
         2: std::backtrace::Backtrace::create
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:331
         3: std::backtrace::Backtrace::capture
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\backtrace.rs:296
         4: <rustc_errors::DiagCtxtHandle>::flush_delayed
         5: <rustc_errors::DiagCtxtHandle>::emit_diagnostic
         6: <rustc_span::ErrorGuaranteed as rustc_errors::diagnostic::EmissionGuarantee>::emit_producing_guarantee
         7: <hashbrown::raw::RawTable<usize>>::reserve_rehash::<indexmap::map::core::get_hash<(rustc_middle::ty::predicate::Predicate, rustc_middle::traits::ObligationCause), ()>::{closure#0}>
         8: <rustc_hir_typeck::fn_ctxt::FnCtxt as rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::record_ty
         9: <dyn rustc_hir_analysis::hir_ty_lowering::HirTyLowerer>::lower_ty
        10: <rustc_hir_typeck::writeback::Resolver as rustc_type_ir::fold::TypeFolder<rustc_middle::ty::context::TyCtxt>>::fold_const
        11: rustc_hir_typeck::typeck
        12: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        13: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        14: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        15: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        16: rustc_hir_typeck::method::probe::method_autoderef_steps
        17: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        18: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        19: <<rustc_hir_typeck::fn_ctxt::FnCtxt>::deduce_closure_signature_from_predicates::MentionsTy as rustc_type_ir::visit::TypeVisitor<rustc_middle::ty::context::TyCtxt>>::visit_ty
        20: rustc_hir_typeck::typeck
        21: <rustc_hir_typeck::upvar::InferBorrowKind as rustc_hir_typeck::expr_use_visitor::Delegate>::borrow
        22: rustc_hir_typeck::typeck
        23: rustc_query_impl::plumbing::query_key_hash_verify_all
        24: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id10LocalDefIdINtNtNtCs5BYDmTWcnKQ
        25: rustc_query_impl::plumbing::query_key_hash_verify_all
        26: RINvMs6_NtCsdskSw9gvGQH_9hashbrown3rawINtB6_8RawTablejE14reserve_rehashNCINvNtNtCslPPgtOmP3yY_8indexmap3map4core8get_hashTNtNtNtCs5BYDmTWcnKQ_12rustc_middle2ty9predicate6ClauseNtNtCs5K2xb0UU2Jw_10rustc_span13span_encoding4SpanEuE0ECscM8KGpa8HpW_18rustc_hir
        27: rustc_hir_analysis::check_crate
        28: <rustc_interface::passes::LintStoreExpandImpl as rustc_expand::base::LintStoreExpand>::pre_expansion_lint
        29: rustc_interface::passes::analysis
        30: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtCsco0OWYSRcIH_21rustc_data_structures9vec_cache8VecCacheNtNtCs5K2xb0UU2Jw_10rustc_span6def_id8CrateNumINtNtNtCs5BYDmTWcnKQ_12
        31: RINvNtNtCs7IFNuxsOQZH_18rustc_query_system5query8plumbing17try_execute_queryINtCsiSfPmaTe9VX_16rustc_query_impl13DynamicConfigINtNtB4_6caches11SingleCacheINtNtNtCs5BYDmTWcnKQ_12rustc_middle5query5erase6ErasedAhj0_EEKb0_KB3s_KB3s_ENtNtB1f_8plumbing9QueryCtx
        32: rustc_query_impl::query_system
        33: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        34: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        35: RINvNtNtCsja4ZeDc2XAj_3std3sys9backtrace28___rust_begin_short_backtraceNCNCINvNtCshGilUj5gLc1_15rustc_interface4util26run_in_thread_with_globalsNCINvB1e_31run_in_thread_pool_with_globalsNCINvNtB1g_9interface12run_compileruNCNvCsbbk6E3yTTQl_17rustc_driver_i
        36: std::sys::backtrace::__rust_begin_short_backtrace::<<std::thread::Builder>::spawn_unchecked_<ctrlc::set_handler_inner<rustc_driver_impl::install_ctrlc_handler::{closure#0}>::{closure#0}, ()>::{closure#1}::{closure#0}::{closure#0}, ()>
        37: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        38: alloc::boxed::impl$28::call_once
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\alloc\src\boxed.rs:1966
        39: std::sys::pal::windows::thread::impl$0::new::thread_start
                   at /rustc/6b00bc3880198600130e1cf62b8f8a93494488cc/library\std\src\sys\pal\windows\thread.rs:56
        40: BaseThreadInitThunk
        41: RtlUserThreadStart
 --> src\main.rs:5:40
  |
5 |         fruits[0] - None::<usize>.map(|ix2| fruits[ix2][1]).unwrap_or(0);
  |                                        ^^^

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.88.0 (6b00bc388 2025-06-23) 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:
end of query stack
error: could not compile `_2106` (bin "_2106")

Caused by:
  process didn't exit successfully: `C:\Users\mizar\.rustup\toolchains\stable-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name _2106 --edition=2024 src\main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=119 --crate-type bin --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --check-cfg cfg(docsrs,test) --check-cfg "cfg(feature, values())" -C metadata=db2ef639f97c5707 -C extra-filename=-5585fbebf3b302dc --out-dir C:\utv\leetcode\2106\target\debug\deps -C incremental=C:\utv\leetcode\2106\target\debug\incremental -L dependency=C:\utv\leetcode\2106\target\debug\deps` (exit code: 101)

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions