rust-lang / rust-lang/rust-analyzer

panic: pat: indext out of bounds

Open
#23,336 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-pattern C-bug I-panic
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

fn main() {
	let mut x: &((String, String),) = todo!();
    let ((ref mut r, _) | ((ref mut r, _),),) = &*x;
}

ra @ f3120321073d8046795c6824976be8b0ae92c999

rust-analyzer analysis-stats . --run-all-ide-things

Database loaded:     630.95ms, 220minstr, 48mb (metadata 325.99ms, 963kinstr, 155kb; build 32.97ms, 171kinstr, 1104b)
  item trees: 1
  dependency lines of code: 1_477_159, item trees: 2_968
  dependency item stats: traits: 858, impl: 9_720, mods: 2_998, macro calls: 5_608, macro rules: 1_062
Item Tree Collection: 4.33s, 23ginstr, 431mb
  Total Statistics:
    crates: 1, mods: 1, decls: 1, bodies: 1, adts: 0, consts: 0, signatures: 1, variants: 0
  Workspace:
    traits: 0, macro_rules macros: 0, proc_macros: 0
    lines of code: 4, item trees: 1
    usages: traits: 0, impl: 0, mods: 0, macro calls: 0, macro rules: 0
  Dependencies:
    lines of code: 1_477_159, item trees: 2_968
    declarations: traits: 858, impl: 9_720, mods: 2_998, macro calls: 5_608, macro rules: 1_062
Item Collection:     2.15s, 11ginstr, 176mb
Crate lang items:    263.19ms, 2523minstr, 32mb
Expression Store Lowering: 169.10µs, 265kinstr, 10kb
  exprs: 7, ??ty: 0 (0%), ?ty: 0 (0%), !ty: 0
  pats: 10, ??ty: 1 (10%), ?ty: 3 (30%), !ty: 2
  panics: 0
Inference:           1.36ms, 1116kinstr, 2521kb
MIR lowering:        28.12µs, 53kinstr, 672b
Mir failed bodies: 1 (100%)
Data layouts:        41.00ns, 15kinstr, 0b
Failed data layouts: 0 (100%)
Const evaluation:    5.01µs, 23kinstr, 96b
Failed const evals: 0 (100%)
0/1 0% diagnostics: /tmp/ra/f/src/main.rs
thread 'main' (2163486) panicked at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/pat.rs:117:27:
index out of bounds: the len is 1 but the index is 1
stack backtrace:
   0:     0x55c53261b921 - std[fa5e2ee34deb3bf4]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x55c53261b921 - std[fa5e2ee34deb3bf4]::backtrace_rs::backtrace::trace_unsynchronized::<std[fa5e2ee34deb3bf4]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x55c53261b921 - std[fa5e2ee34deb3bf4]::sys::backtrace::_print_fmt
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/sys/backtrace.rs:74:9
   3:     0x55c53261b921 - <<std[fa5e2ee34deb3bf4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4c46b8ddcb046c9a]::fmt::Display>::fmt
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/sys/backtrace.rs:44:26
   4:     0x55c53263855a - <core[4c46b8ddcb046c9a]::fmt::rt::Argument>::fmt
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/fmt/rt.rs:152:76
   5:     0x55c53263855a - core[4c46b8ddcb046c9a]::fmt::write
   6:     0x55c53262529c - core[4c46b8ddcb046c9a]::io::write::default_write_fmt::<std[fa5e2ee34deb3bf4]::sys::stdio::unix::Stderr>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/io/write.rs:402:11
   7:     0x55c53262529c - <std[fa5e2ee34deb3bf4]::sys::stdio::unix::Stderr as core[4c46b8ddcb046c9a]::io::write::Write>::write_fmt
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/io/write.rs:335:13
   8:     0x55c5325f2826 - <std[fa5e2ee34deb3bf4]::sys::backtrace::BacktraceLock>::print
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/sys/backtrace.rs:47:9
   9:     0x55c5325f2826 - std[fa5e2ee34deb3bf4]::panicking::default_hook::{closure#0}
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:289:27
  10:     0x55c5326117a1 - std[fa5e2ee34deb3bf4]::panicking::default_hook
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:316:9
  11:     0x55c532611acb - std[fa5e2ee34deb3bf4]::panicking::panic_with_hook
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:811:13
  12:     0x55c5325f28d2 - std[fa5e2ee34deb3bf4]::panicking::panic_handler::{closure#0}
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:685:13
  13:     0x55c5325ebb89 - std[fa5e2ee34deb3bf4]::sys::backtrace::__rust_end_short_backtrace::<std[fa5e2ee34deb3bf4]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/sys/backtrace.rs:182:18
  14:     0x55c5325f36bd - __rustc[618f95e5727e933c]::rust_begin_unwind
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:676:5
  15:     0x55c532638d7c - core[4c46b8ddcb046c9a]::panicking::panic_fmt
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/panicking.rs:80:14
  16:     0x55c532638bcc - core[4c46b8ddcb046c9a]::panicking::panic_bounds_check
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/panicking.rs:271:5
  17:     0x55c531f4ca3d - <usize as core[4c46b8ddcb046c9a]::slice::index::SliceIndex<[ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::pat::PatOrWild<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>]>>::index_mut
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:245:14
  18:     0x55c531f4ca3d - <[ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::pat::PatOrWild<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>] as core[4c46b8ddcb046c9a]::ops::index::IndexMut<usize>>::index_mut
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:32:15
  19:     0x55c531f4ca3d - <smallvec[c843ffb7915294bc]::SmallVec<[ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::pat::PatOrWild<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>; 2usize]> as core[4c46b8ddcb046c9a]::ops::index::IndexMut<usize>>::index_mut
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2067:27
  20:     0x55c531f4ca3d - <ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::pat::DeconstructedPat<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>>::specialize
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/pat.rs:117:27
  21:     0x55c531cf767c - <ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::pat_column::PatternColumn<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>>::specialize
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/pat_column.rs:83:35
  22:     0x55c531cf767c - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::checks::detect_mixed_deref_pat_ctors_inner::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/checks.rs:45:42
  23:     0x55c531cf7a0f - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::checks::detect_mixed_deref_pat_ctors_inner::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/checks.rs:46:13
  24:     0x55c531cf7a0f - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::checks::detect_mixed_deref_pat_ctors_inner::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/checks.rs:46:13
  25:     0x55c531cf7a0f - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::checks::detect_mixed_deref_pat_ctors_inner::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/checks.rs:46:13
  26:     0x55c531ed78e2 - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::checks::detect_mixed_deref_pat_ctors::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/checks.rs:13:5
  27:     0x55c531ed78e2 - ra_ap_rustc_pattern_analysis[13da4e1ff9531429]::usefulness::compute_match_usefulness::<hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/usefulness.rs:1844:9
  28:     0x55c531ed78e2 - <hir_ty[768a205bb6944000]::diagnostics::match_check::pat_analysis::MatchCheckCtx>::compute_match_usefulness
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/diagnostics/match_check/pat_analysis.rs:105:9
  29:     0x55c531e3ad58 - <hir_ty[768a205bb6944000]::diagnostics::expr::ExprValidator>::check_non_exhaustive_let
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/diagnostics/expr.rs:368:31
  30:     0x55c531e3ad58 - <hir_ty[768a205bb6944000]::diagnostics::expr::ExprValidator>::validate_block
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/diagnostics/expr.rs:329:30
  31:     0x55c531e3ad58 - <hir_ty[768a205bb6944000]::diagnostics::expr::ExprValidator>::validate_body
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/diagnostics/expr.rs:155:26
  32:     0x55c531e3ad58 - <hir_ty[768a205bb6944000]::diagnostics::expr::BodyValidationDiagnostic>::collect
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/diagnostics/expr.rs:99:19
  33:     0x55c531bfd20f - <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_def_with_body
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir/src/diagnostics.rs:1277:27
  34:     0x55c531bfb169 - <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module_def
  35:     0x55c531bf7a90 - <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir/src/diagnostics.rs:1148:34
  36:     0x55c531bf7a90 - core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call::<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0}
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:884:29
  37:     0x55c531bf7a90 - <&mut core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0} as core[4c46b8ddcb046c9a]::ops::function::FnMut<((), hir_def[ea22a566cc27bf68]::ModuleDefId)>>::call_mut
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:298:21
  38:     0x55c531bf7a90 - core[4c46b8ddcb046c9a]::iter::adapters::copied::copy_fold::<hir_def[ea22a566cc27bf68]::ModuleDefId, (), &mut core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0}>::{closure#0}
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/copied.rs:36:22
  39:     0x55c531bf7a90 - <core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ModuleDefId> as core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator>::fold::<(), core[4c46b8ddcb046c9a]::iter::adapters::copied::copy_fold<hir_def[ea22a566cc27bf68]::ModuleDefId, (), &mut core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0}>::{closure#0}>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:274:27
  40:     0x55c531bf7a90 - <core[4c46b8ddcb046c9a]::iter::adapters::copied::Copied<core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ModuleDefId>> as core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator>::fold::<(), &mut core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0}>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/copied.rs:81:17
  41:     0x55c531bf7a90 - <core[4c46b8ddcb046c9a]::iter::adapters::chain::Chain<core[4c46b8ddcb046c9a]::iter::adapters::copied::Copied<core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ModuleDefId>>, core[4c46b8ddcb046c9a]::iter::adapters::map::Map<core[4c46b8ddcb046c9a]::iter::adapters::copied::Copied<core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ConstId>>, hir_def[ea22a566cc27bf68]::ModuleDefId::ConstId>> as core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator>::fold::<(), core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator::for_each::call<hir_def[ea22a566cc27bf68]::ModuleDefId, <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0}>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/adapters/chain.rs:121:21
  42:     0x55c531bf7a90 - <core[4c46b8ddcb046c9a]::iter::adapters::chain::Chain<core[4c46b8ddcb046c9a]::iter::adapters::copied::Copied<core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ModuleDefId>>, core[4c46b8ddcb046c9a]::iter::adapters::map::Map<core[4c46b8ddcb046c9a]::iter::adapters::copied::Copied<core[4c46b8ddcb046c9a]::slice::iter::Iter<hir_def[ea22a566cc27bf68]::ConstId>>, hir_def[ea22a566cc27bf68]::ModuleDefId::ConstId>> as core[4c46b8ddcb046c9a]::iter::traits::iterator::Iterator>::for_each::<<hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/iter/traits/iterator.rs:887:14
  43:     0x55c531bf7a90 - <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect_module
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir/src/diagnostics.rs:1148:14
  44:     0x55c531c0a3b6 - <hir[8123398aa76cd885]::diagnostics::DiagnosticsCollector>::collect
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir/src/diagnostics.rs:766:14
  45:     0x55c531c0a3b6 - <hir[8123398aa76cd885]::Module>::diagnostics
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir/src/lib.rs:699:9
  46:     0x55c5316c9bf5 - ide_diagnostics[78bf6a38b085db5c]::semantic_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide-diagnostics/src/lib.rs:432:19
  47:     0x55c5316c4202 - ide_diagnostics[78bf6a38b085db5c]::full_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide-diagnostics/src/lib.rs:603:16
  48:     0x55c53155b17f - <ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide/src/lib.rs:829:27
  49:     0x55c53155b17f - <ide[7c963f3d43a86417]::Analysis>::with_db::<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide/src/lib.rs:975:70
  50:     0x55c53155b17f - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::do_call::<<ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:573:43
  51:     0x55c53155b17f - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}::{closure#0}>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:541:19
  52:     0x55c53155b17f - std[fa5e2ee34deb3bf4]::panic::catch_unwind::<<ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  53:     0x55c53155b17f - <salsa[c0597541b15d68de]::cancelled::Cancelled>::catch::<<ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-0.28.2/src/cancelled.rs:36:15
  54:     0x55c53155b17f - <ide[7c963f3d43a86417]::Analysis>::with_db::<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide/src/lib.rs:975:50
  55:     0x55c53155b17f - <hir_ty[768a205bb6944000]::next_solver::interner::tls_db::Attached>::attach_allow_change::<core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}>
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:2482:13
  56:     0x55c53155b17f - hir_ty[768a205bb6944000]::next_solver::interner::tls_db::attach_db_allow_change::<core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}>::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:2505:46
  57:     0x55c53155b17f - <std[fa5e2ee34deb3bf4]::thread::local::LocalKey<hir_ty[768a205bb6944000]::next_solver::interner::tls_db::Attached>>::try_with::<hir_ty[768a205bb6944000]::next_solver::interner::tls_db::attach_db_allow_change<core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}>::{closure#0}, core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:463:12
  58:     0x55c53155b17f - <std[fa5e2ee34deb3bf4]::thread::local::LocalKey<hir_ty[768a205bb6944000]::next_solver::interner::tls_db::Attached>>::with::<hir_ty[768a205bb6944000]::next_solver::interner::tls_db::attach_db_allow_change<core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}>::{closure#0}, core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/local.rs:427:20
  59:     0x55c53155b17f - hir_ty[768a205bb6944000]::next_solver::interner::tls_db::attach_db_allow_change::<core[4c46b8ddcb046c9a]::result::Result<alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>, salsa[c0597541b15d68de]::cancelled::Cancelled>, <ide[7c963f3d43a86417]::Analysis>::with_db<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>::{closure#0}>
                               at /home/matthias/vcs/github/rust-analyzer/crates/hir-ty/src/next_solver/interner.rs:2505:19
  60:     0x55c53155b17f - <ide[7c963f3d43a86417]::Analysis>::with_db::<<ide[7c963f3d43a86417]::Analysis>::full_diagnostics::{closure#0}, alloc[bd4d707e4ed13fd9]::vec::Vec<ide_diagnostics[78bf6a38b085db5c]::Diagnostic>>
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide/src/lib.rs:975:9
  61:     0x55c53155b17f - <ide[7c963f3d43a86417]::Analysis>::full_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer/crates/ide/src/lib.rs:829:14
  62:     0x55c531111661 - <rust_analyzer[24acc2ba1afc2dd4]::cli::flags::AnalysisStats>::run_ide_things
                               at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/cli/analysis_stats.rs:1354:26
  63:     0x55c531111661 - <rust_analyzer[24acc2ba1afc2dd4]::cli::flags::AnalysisStats>::run
                               at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/cli/analysis_stats.rs:382:18
  64:     0x55c530e934ec - rust_analyzer[1484930b08a77ec]::actual_main
                               at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/bin/main.rs:74:59
  65:     0x55c530e934ec - rust_analyzer[1484930b08a77ec]::main
                               at /home/matthias/vcs/github/rust-analyzer/crates/rust-analyzer/src/bin/main.rs:32:9
  66:     0x55c530e8f803 - <fn() -> core[4c46b8ddcb046c9a]::result::Result<std[fa5e2ee34deb3bf4]::process::ExitCode, anyhow[470624ed11369649]::Error> as core[4c46b8ddcb046c9a]::ops::function::FnOnce<()>>::call_once
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  67:     0x55c530e8f803 - std[fa5e2ee34deb3bf4]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core[4c46b8ddcb046c9a]::result::Result<std[fa5e2ee34deb3bf4]::process::ExitCode, anyhow[470624ed11369649]::Error>, core[4c46b8ddcb046c9a]::result::Result<std[fa5e2ee34deb3bf4]::process::ExitCode, anyhow[470624ed11369649]::Error>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:166:18
  68:     0x55c530e918a2 - std[fa5e2ee34deb3bf4]::rt::lang_start::<core[4c46b8ddcb046c9a]::result::Result<std[fa5e2ee34deb3bf4]::process::ExitCode, anyhow[470624ed11369649]::Error>>::{closure#0}
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
  69:     0x55c532610648 - <&dyn core[4c46b8ddcb046c9a]::ops::function::Fn<(), Output = i32> + core[4c46b8ddcb046c9a]::panic::unwind_safe::RefUnwindSafe + core[4c46b8ddcb046c9a]::marker::Sync as core[4c46b8ddcb046c9a]::ops::function::FnOnce<()>>::call_once
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/core/src/ops/function.rs:287:21
  70:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::do_call::<&dyn core[4c46b8ddcb046c9a]::ops::function::Fn<(), Output = i32> + core[4c46b8ddcb046c9a]::panic::unwind_safe::RefUnwindSafe + core[4c46b8ddcb046c9a]::marker::Sync, i32>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:573:43
  71:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::<i32, &dyn core[4c46b8ddcb046c9a]::ops::function::Fn<(), Output = i32> + core[4c46b8ddcb046c9a]::panic::unwind_safe::RefUnwindSafe + core[4c46b8ddcb046c9a]::marker::Sync>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:541:19
  72:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panic::catch_unwind::<&dyn core[4c46b8ddcb046c9a]::ops::function::Fn<(), Output = i32> + core[4c46b8ddcb046c9a]::panic::unwind_safe::RefUnwindSafe + core[4c46b8ddcb046c9a]::marker::Sync, i32>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panic.rs:359:14
  73:     0x55c532610648 - std[fa5e2ee34deb3bf4]::rt::lang_start_internal::{closure#0}
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/rt.rs:175:24
  74:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::do_call::<std[fa5e2ee34deb3bf4]::rt::lang_start_internal::{closure#0}, isize>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:573:43
  75:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panicking::catch_unwind::<isize, std[fa5e2ee34deb3bf4]::rt::lang_start_internal::{closure#0}>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panicking.rs:541:19
  76:     0x55c532610648 - std[fa5e2ee34deb3bf4]::panic::catch_unwind::<std[fa5e2ee34deb3bf4]::rt::lang_start_internal::{closure#0}, isize>
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/panic.rs:359:14
  77:     0x55c532610648 - std[fa5e2ee34deb3bf4]::rt::lang_start_internal
                               at /rustc/4aa1fbcf467cf38ce58abfa8eb9213a789c5381c/library/std/src/rt.rs:171:5
  78:     0x55c530ea833f - main
  79:     0x7f8154227781 - <unknown>
  80:     0x7f81542278b9 - __libc_start_main
  81:     0x55c530e81855 - _start
  82:                0x0 - <unknown>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reproducer in the issue and run rust-analyzer analysis-stats . --run-all-ide-things at revision f3120321073d8046795c6824976be8b0ae92c999. Trace the panic from crates/hir-ty/src/diagnostics/expr.rs through match usefulness and pattern specialization at pat.rs:117. Done means this input no longer panics while analysis completes and reports diagnostics.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.