rust-lang / rust-lang/rust-analyzer

panic: Unexpected type for `Variant(EnumVariantContiguousIndex(0))`

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

Nobody has claimed this yet.

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

Description

this compiles wirh rustc but ra with debug assertions panics ( rust-analyzer analysis-stats . --run-all-ide-thing )

struct Inv<'a>(&'a mut &'a ());
enum Foo<T> {
    Bar,
    Var(T),
}
type Subtype = Foo<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>;
type Supertype = Foo<for<'a> fn(Inv<'a>, Inv<'a>)>;

fn foo() -> impl Sized {
    loop {
        match foo() {
            Subtype::Bar => (),
            Supertype::Var(x) => {}
        }
    }
}

pub fn main() {}
Database loaded:     326.60ms, 223minstr, 48mb (metadata 163.37ms, 972kinstr, 155kb; build 29.54ms, 172kinstr, 1440b)
  item trees: 1
  dependency lines of code: 1_478_357, item trees: 2_969
  dependency item stats: traits: 860, impl: 9_717, mods: 3_002, macro calls: 5_613, macro rules: 1_062
Item Tree Collection: 2.66s, 28ginstr, 431mb
  Total Statistics:
    crates: 1, mods: 1, decls: 6, bodies: 4, adts: 2, consts: 0, signatures: 6, variants: 3
  Workspace:
    traits: 0, macro_rules macros: 0, proc_macros: 0
    lines of code: 18, item trees: 1
    usages: traits: 0, impl: 0, mods: 0, macro calls: 0, macro rules: 0
  Dependencies:
    lines of code: 1_478_357, item trees: 2_969
    declarations: traits: 860, impl: 9_717, mods: 3_002, macro calls: 5_613, macro rules: 1_062
Item Collection:     1.46s, 13ginstr, 176mb
Crate lang items:    283.06ms, 2906minstr, 31mb
Expression Store Lowering: 256.86µs, 847kinstr, 15kb
  exprs: 11, ??ty: 0 (0%), ?ty: 0 (0%), !ty: 0
  pats: 3, ??ty: 0 (0%), ?ty: 0 (0%), !ty: 0
  panics: 0
Inference:           229.52ms, 1529minstr, 35mb
MIR lowering:        83.27µs, 209kinstr, 23kb
Mir failed bodies: 1 (50%)
Data layouts:        2.38µs, 16kinstr, 0b
Failed data layouts: 0 (100%)
Const evaluation:    18.44µs, 77kinstr, 368b
Failed const evals: 0 (100%)
0/1 0% diagnostics: /tmp/im/f/src/main.rs
thread 'main' (23215) panicked at crates/hir-ty/src/diagnostics/match_check/pat_analysis.rs:380:21:
internal error: entered unreachable code: Unexpected type for `Variant(EnumVariantContiguousIndex(0))` constructor: Alias(AliasTy { args: [], kind: Opaque { def_id: InternedOpaqueTyId(InternedOpaqueTyId(Id(15d00))) }, .. })
stack backtrace:
   0:     0x5614217af1f1 - std[71a467343b18a2c1]::backtrace_rs::backtrace::libunwind::trace
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x5614217af1f1 - std[71a467343b18a2c1]::backtrace_rs::backtrace::trace_unsynchronized::<std[71a467343b18a2c1]::sys::backtrace::_print_fmt::{closure#1}>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x5614217af1f1 - std[71a467343b18a2c1]::sys::backtrace::_print_fmt
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/sys/backtrace.rs:74:9
   3:     0x5614217af1f1 - <<std[71a467343b18a2c1]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[11918ecc8322c3ee]::fmt::Display>::fmt
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/sys/backtrace.rs:44:26
   4:     0x5614217cbe2a - <core[11918ecc8322c3ee]::fmt::rt::Argument>::fmt
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/core/src/fmt/rt.rs:152:76
   5:     0x5614217cbe2a - core[11918ecc8322c3ee]::fmt::write
   6:     0x5614217b8b6c - core[11918ecc8322c3ee]::io::write::default_write_fmt::<std[71a467343b18a2c1]::sys::stdio::unix::Stderr>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/core/src/io/write.rs:402:11
   7:     0x5614217b8b6c - <std[71a467343b18a2c1]::sys::stdio::unix::Stderr as core[11918ecc8322c3ee]::io::write::Write>::write_fmt
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/core/src/io/write.rs:335:13
   8:     0x561421785ee6 - <std[71a467343b18a2c1]::sys::backtrace::BacktraceLock>::print
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/sys/backtrace.rs:47:9
   9:     0x561421785ee6 - std[71a467343b18a2c1]::panicking::default_hook::{closure#0}
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:289:27
  10:     0x5614217a4f81 - std[71a467343b18a2c1]::panicking::default_hook
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:316:9
  11:     0x5614217a52ab - std[71a467343b18a2c1]::panicking::panic_with_hook
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:811:13
  12:     0x561421785f92 - std[71a467343b18a2c1]::panicking::panic_handler::{closure#0}
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:685:13
  13:     0x56142177d169 - std[71a467343b18a2c1]::sys::backtrace::__rust_end_short_backtrace::<std[71a467343b18a2c1]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/sys/backtrace.rs:182:18
  14:     0x561421786dcd - __rustc[3b8ba45af69cfb7c]::rust_begin_unwind
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:676:5
  15:     0x5614217cc6fc - core[11918ecc8322c3ee]::panicking::panic_fmt
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/core/src/panicking.rs:80:14
  16:     0x561421152e14 - <hir_ty[c6020b5b036d7a82]::diagnostics::match_check::pat_analysis::MatchCheckCtx as ra_ap_rustc_pattern_analysis[89059be1c093763]::PatCx>::ctor_sub_tys
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/diagnostics/match_check/pat_analysis.rs:380:21
  17:     0x561420dd2f75 - <ra_ap_rustc_pattern_analysis[89059be1c093763]::usefulness::PlaceInfo<hir_ty[c6020b5b036d7a82]::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/usefulness.rs:912:31
  18:     0x561420dd2f75 - <ra_ap_rustc_pattern_analysis[89059be1c093763]::usefulness::Matrix<hir_ty[c6020b5b036d7a82]::diagnostics::match_check::pat_analysis::MatchCheckCtx>>::specialize_constructor
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/usefulness.rs:1303:58
  19:     0x561420dd2f75 - ra_ap_rustc_pattern_analysis[89059be1c093763]::usefulness::compute_exhaustiveness_and_usefulness::<hir_ty[c6020b5b036d7a82]::diagnostics::match_check::pat_analysis::MatchCheckCtx>::{closure#0}
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/ra-ap-rustc_pattern_analysis-0.166.0/src/usefulness.rs:1754:38
  20:     0x561420dd2f75 - ra_ap_rustc_pattern_analysis[89059be1c093763]::usefulness::compute_exhaustiveness_and_usefulness::<hir_ty[c6020b5b036d7a82]::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:1703:1
  21:     0x561420fc0de7 - ra_ap_rustc_pattern_analysis[89059be1c093763]::usefulness::compute_match_usefulness::<hir_ty[c6020b5b036d7a82]::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:1854:40
  22:     0x561420fc0de7 - <hir_ty[c6020b5b036d7a82]::diagnostics::match_check::pat_analysis::MatchCheckCtx>::compute_match_usefulness
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/diagnostics/match_check/pat_analysis.rs:105:9
  23:     0x561420f45e0a - <hir_ty[c6020b5b036d7a82]::diagnostics::expr::ExprValidator>::validate_match
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/diagnostics/expr.rs:256:22
  24:     0x561420f45e0a - <hir_ty[c6020b5b036d7a82]::diagnostics::expr::ExprValidator>::validate_body
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/diagnostics/expr.rs:143:26
  25:     0x561420f45e0a - <hir_ty[c6020b5b036d7a82]::diagnostics::expr::BodyValidationDiagnostic>::collect
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/diagnostics/expr.rs:99:19
  26:     0x561420c8d2a2 - <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect_def_with_body
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir/src/diagnostics.rs:1281:27
  27:     0x561420c8b4e9 - <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect_module_def
  28:     0x561420c881bf - <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir/src/diagnostics.rs:1148:34
  29:     0x561420c881bf - core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call::<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::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
  30:     0x561420c881bf - <&mut core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect_module::{closure#1}>::{closure#0} as core[11918ecc8322c3ee]::ops::function::FnMut<((), hir_def[b797b053043be09c]::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
  31:     0x561420c881bf - core[11918ecc8322c3ee]::iter::adapters::copied::copy_fold::<hir_def[b797b053043be09c]::ModuleDefId, (), &mut core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::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
  32:     0x561420c881bf - <core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ModuleDefId> as core[11918ecc8322c3ee]::iter::traits::iterator::Iterator>::fold::<(), core[11918ecc8322c3ee]::iter::adapters::copied::copy_fold<hir_def[b797b053043be09c]::ModuleDefId, (), &mut core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::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
  33:     0x561420c881bf - <core[11918ecc8322c3ee]::iter::adapters::copied::Copied<core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ModuleDefId>> as core[11918ecc8322c3ee]::iter::traits::iterator::Iterator>::fold::<(), &mut core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::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
  34:     0x561420c881bf - <core[11918ecc8322c3ee]::iter::adapters::chain::Chain<core[11918ecc8322c3ee]::iter::adapters::copied::Copied<core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ModuleDefId>>, core[11918ecc8322c3ee]::iter::adapters::map::Map<core[11918ecc8322c3ee]::iter::adapters::copied::Copied<core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ConstId>>, hir_def[b797b053043be09c]::ModuleDefId::ConstId>> as core[11918ecc8322c3ee]::iter::traits::iterator::Iterator>::fold::<(), core[11918ecc8322c3ee]::iter::traits::iterator::Iterator::for_each::call<hir_def[b797b053043be09c]::ModuleDefId, <hir[c7ad7fe945aa0503]::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
  35:     0x561420c881bf - <core[11918ecc8322c3ee]::iter::adapters::chain::Chain<core[11918ecc8322c3ee]::iter::adapters::copied::Copied<core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ModuleDefId>>, core[11918ecc8322c3ee]::iter::adapters::map::Map<core[11918ecc8322c3ee]::iter::adapters::copied::Copied<core[11918ecc8322c3ee]::slice::iter::Iter<hir_def[b797b053043be09c]::ConstId>>, hir_def[b797b053043be09c]::ModuleDefId::ConstId>> as core[11918ecc8322c3ee]::iter::traits::iterator::Iterator>::for_each::<<hir[c7ad7fe945aa0503]::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
  36:     0x561420c881bf - <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect_module
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir/src/diagnostics.rs:1148:14
  37:     0x561420c9a226 - <hir[c7ad7fe945aa0503]::diagnostics::DiagnosticsCollector>::collect
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir/src/diagnostics.rs:766:14
  38:     0x561420c9a226 - <hir[c7ad7fe945aa0503]::Module>::diagnostics
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir/src/lib.rs:699:9
  39:     0x5614206dfd66 - ide_diagnostics[6dc3f02d39f00f14]::semantic_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide-diagnostics/src/lib.rs:432:19
  40:     0x5614206da202 - ide_diagnostics[6dc3f02d39f00f14]::full_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide-diagnostics/src/lib.rs:603:16
  41:     0x56142055c1ed - <ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide/src/lib.rs:829:27
  42:     0x56142055c1ed - <ide[fb707b7c9d152f80]::Analysis>::with_db::<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide/src/lib.rs:975:70
  43:     0x56142055c1ed - std[71a467343b18a2c1]::panicking::catch_unwind::do_call::<<ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:573:43
  44:     0x56142055c1ed - std[71a467343b18a2c1]::panicking::catch_unwind::<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::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
  45:     0x56142055c1ed - std[71a467343b18a2c1]::panic::catch_unwind::<<ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:359:14
  46:     0x56142055c1ed - <salsa[5d03113ac9f39ed2]::cancelled::Cancelled>::catch::<<ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>
                               at /home/matthias/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/salsa-0.28.2/src/cancelled.rs:36:15
  47:     0x56142055c1ed - <ide[fb707b7c9d152f80]::Analysis>::with_db::<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide/src/lib.rs:975:50
  48:     0x56142055c1ed - <hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::Attached>::attach_allow_change::<core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::cancelled::Cancelled>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}>
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/next_solver/interner.rs:2482:13
  49:     0x56142055c1ed - hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::attach_db_allow_change::<core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::cancelled::Cancelled>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}>::{closure#0}
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/next_solver/interner.rs:2505:46
  50:     0x56142055c1ed - <std[71a467343b18a2c1]::thread::local::LocalKey<hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::Attached>>::try_with::<hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::attach_db_allow_change<core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::cancelled::Cancelled>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}>::{closure#0}, core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::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
  51:     0x56142055c1ed - <std[71a467343b18a2c1]::thread::local::LocalKey<hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::Attached>>::with::<hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::attach_db_allow_change<core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::cancelled::Cancelled>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}>::{closure#0}, core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::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
  52:     0x56142055c1ed - hir_ty[c6020b5b036d7a82]::next_solver::interner::tls_db::attach_db_allow_change::<core[11918ecc8322c3ee]::result::Result<alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>, salsa[5d03113ac9f39ed2]::cancelled::Cancelled>, <ide[fb707b7c9d152f80]::Analysis>::with_db<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>::{closure#0}>
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/hir-ty/src/next_solver/interner.rs:2505:19
  53:     0x56142055c1ed - <ide[fb707b7c9d152f80]::Analysis>::with_db::<<ide[fb707b7c9d152f80]::Analysis>::full_diagnostics::{closure#0}, alloc[b37a3ff7fa4d5f32]::vec::Vec<ide_diagnostics[6dc3f02d39f00f14]::Diagnostic>>
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide/src/lib.rs:975:9
  54:     0x56142055c1ed - <ide[fb707b7c9d152f80]::Analysis>::full_diagnostics
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/ide/src/lib.rs:829:14
  55:     0x56142009f67f - <rust_analyzer[fbb607e756b1a4f1]::cli::flags::AnalysisStats>::run_ide_things
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/rust-analyzer/src/cli/analysis_stats.rs:1354:26
  56:     0x56142009f67f - <rust_analyzer[fbb607e756b1a4f1]::cli::flags::AnalysisStats>::run
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/rust-analyzer/src/cli/analysis_stats.rs:382:18
  57:     0x56141fdca70b - rust_analyzer[e285ded21ab2a89]::actual_main
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/rust-analyzer/src/bin/main.rs:74:59
  58:     0x56141fdca70b - rust_analyzer[e285ded21ab2a89]::main
                               at /home/matthias/vcs/github/rust-analyzer-debug-assertions/crates/rust-analyzer/src/bin/main.rs:32:9
  59:     0x56141fdc56eb - <fn() -> core[11918ecc8322c3ee]::result::Result<std[71a467343b18a2c1]::process::ExitCode, anyhow[9bbca5dfff5fb2cc]::Error> as core[11918ecc8322c3ee]::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
  60:     0x56141fdc56eb - std[71a467343b18a2c1]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core[11918ecc8322c3ee]::result::Result<std[71a467343b18a2c1]::process::ExitCode, anyhow[9bbca5dfff5fb2cc]::Error>, core[11918ecc8322c3ee]::result::Result<std[71a467343b18a2c1]::process::ExitCode, anyhow[9bbca5dfff5fb2cc]::Error>>
                               at /home/matthias/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:166:18
  61:     0x56141fdc7e12 - std[71a467343b18a2c1]::rt::lang_start::<core[11918ecc8322c3ee]::result::Result<std[71a467343b18a2c1]::process::ExitCode, anyhow[9bbca5dfff5fb2cc]::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
  62:     0x5614217a3e28 - <&dyn core[11918ecc8322c3ee]::ops::function::Fn<(), Output = i32> + core[11918ecc8322c3ee]::panic::unwind_safe::RefUnwindSafe + core[11918ecc8322c3ee]::marker::Sync as core[11918ecc8322c3ee]::ops::function::FnOnce<()>>::call_once
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/core/src/ops/function.rs:287:21
  63:     0x5614217a3e28 - std[71a467343b18a2c1]::panicking::catch_unwind::do_call::<&dyn core[11918ecc8322c3ee]::ops::function::Fn<(), Output = i32> + core[11918ecc8322c3ee]::panic::unwind_safe::RefUnwindSafe + core[11918ecc8322c3ee]::marker::Sync, i32>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:573:43
  64:     0x5614217a3e28 - std[71a467343b18a2c1]::panicking::catch_unwind::<i32, &dyn core[11918ecc8322c3ee]::ops::function::Fn<(), Output = i32> + core[11918ecc8322c3ee]::panic::unwind_safe::RefUnwindSafe + core[11918ecc8322c3ee]::marker::Sync>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:541:19
  65:     0x5614217a3e28 - std[71a467343b18a2c1]::panic::catch_unwind::<&dyn core[11918ecc8322c3ee]::ops::function::Fn<(), Output = i32> + core[11918ecc8322c3ee]::panic::unwind_safe::RefUnwindSafe + core[11918ecc8322c3ee]::marker::Sync, i32>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panic.rs:359:14
  66:     0x5614217a3e28 - std[71a467343b18a2c1]::rt::lang_start_internal::{closure#0}
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/rt.rs:175:24
  67:     0x5614217a3e28 - std[71a467343b18a2c1]::panicking::catch_unwind::do_call::<std[71a467343b18a2c1]::rt::lang_start_internal::{closure#0}, isize>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:573:43
  68:     0x5614217a3e28 - std[71a467343b18a2c1]::panicking::catch_unwind::<isize, std[71a467343b18a2c1]::rt::lang_start_internal::{closure#0}>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panicking.rs:541:19
  69:     0x5614217a3e28 - std[71a467343b18a2c1]::panic::catch_unwind::<std[71a467343b18a2c1]::rt::lang_start_internal::{closure#0}, isize>
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/panic.rs:359:14
  70:     0x5614217a3e28 - std[71a467343b18a2c1]::rt::lang_start_internal
                               at /rustc/0fc141305da7a8a222f65aef1f1acc739c46282b/library/std/src/rt.rs:171:5
  71:     0x56141fddff7f - main
  72:     0x7f31e6427781 - <unknown>
  73:     0x7f31e64278b9 - __libc_start_main
  74:     0x56141fdb31c5 - _start

ra @ 6aeeb8cf02741e5da07a1615a05faa506cecb21a

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

Reproduce the panic with the supplied Rust example using rust-analyzer analysis-stats --run-all-ide-thing. Start in crates/hir-ty/src/diagnostics/match_check/pat_analysis.rs, especially ctor_sub_tys, and inspect the caller in crates/hir-ty/src/diagnostics/expr.rs. Done means the example no longer panics under debug assertions and match diagnostics still run successfully.

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
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.