Panic context: > fetch_native_diagnostics thread 'Worker' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\ra-ap-rustc_pattern_analysis-0.40.0\src\usefulness.rs:954:18: index out of bounds: the len is 0 but the index is 0 stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\std\src\panicking.rs:645 1: core::panicking::panic_fmt at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:72 2: core::panicking::panic_bounds_check at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:208 3: as core::iter::traits::collect::Extend<::Item>>::extend 4: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 5: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 6: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 7: ra_ap_rustc_pattern_analysis::usefulness::compute_match_usefulness 8: hir_ty::diagnostics::expr::BodyValidationDiagnostic::collect 9: hir::DefWithBody::diagnostics 10: hir::ModuleDef::diagnostics 11: hir::Module::diagnostics 12: ide_diagnostics::diagnostics 13: salsa::Cancelled::catch 14: ide::Analysis::diagnostics 15: core::ops::function::impls:: for &mut F>::call_mut 16: as alloc::vec::spec_from_iter::SpecFromIter>::from_iter 17: core::ops::function::FnOnce::call_once{{vtable.shim}} note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. Panic context: > version: 0.4.1867-standalone (037924c4d 2024-03-03) request: textDocument/codeAction CodeActionParams { text_document: TextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/dev/carlos/src/main.rs", query: None, fragment: None, }, }, range: Range { start: Position { line: 1, character: 12, }, end: Position { line: 1, character: 12, }, }, context: CodeActionContext { diagnostics: [ Diagnostic { range: Range { start: Position { line: 1, character: 12, }, end: Position { line: 1, character: 13, }, }, severity: Some( Warning, ), code: Some( String( "Click for full compiler diagnostic", ), ), code_description: Some( CodeDescription { href: Url { scheme: "rust-analyzer-diagnostics-view", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/diagnostic%20message%20%5B2%5D", query: Some( "2", ), fragment: Some( "file%3A%2F%2F%2Fc%253A%2Fdev%2Fcarlos%2Fsrc%2Fmain.rs", ), }, }, ), source: Some( "rustc", ), message: "unused variable: `b`", related_information: Some( [ DiagnosticRelatedInformation { location: Location { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/dev/carlos/src/main.rs", query: None, fragment: None, }, range: Range { start: Position { line: 1, character: 12, }, end: Position { line: 1, character: 13, }, }, }, message: "if this is intentional, prefix it with an underscore: `_b`", }, ], ), tags: Some( [ Unnecessary, ], ), data: Some( Object { "rendered": String("\u{1b}[0m\u{1b}[1m\u{1b}[38;5;11mwarning\u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;15m: unused variable: `b`\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;14m--> \u{1b}[0m\u{1b}[0msrc\\main.rs:2:13\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;14m|\u{1b}[0m\n\u{1b}[0m\u{1b}[1m\u{1b}[38;5;14m2\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;14m|\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m let (a, b) = (0, 0);\u{1b}[0m\n\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;14m| \u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;11m^\u{1b}[0m\u{1b}[0m \u{1b}[0m\u{1b}[0m\u{1b}[1m\u{1b}[38;5;11mhelp: if this is intentional, prefix it with an underscore: `_b`\u{1b}[0m\n\n"), }, ), }, Diagnostic { range: Range { start: Position { line: 1, character: 12, }, end: Position { line: 1, character: 13, }, }, severity: Some( Hint, ), code: Some( String( "unused_variables", ), ), code_description: None, source: Some( "rustc", ), message: "if this is intentional, prefix it with an underscore: `_b`", related_information: Some( [ DiagnosticRelatedInformation { location: Location { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/c%3A/dev/carlos/src/main.rs", query: None, fragment: None, }, range: Range { start: Position { line: 1, character: 12, }, end: Position { line: 1, character: 13, }, }, }, message: "original diagnostic", }, ], ), tags: None, data: None, }, ], only: None, trigger_kind: Some( Automatic, ), }, work_done_progress_params: WorkDoneProgressParams { work_done_token: None, }, partial_result_params: PartialResultParams { partial_result_token: None, }, } thread 'Worker' panicked at C:\Users\runneradmin\.cargo\registry\src\index.crates.io-6f17d22bba15001f\ra-ap-rustc_pattern_analysis-0.40.0\src\usefulness.rs:954:18: index out of bounds: the len is 0 but the index is 0 stack backtrace: 0: std::panicking::begin_panic_handler at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\std\src\panicking.rs:645 1: core::panicking::panic_fmt at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:72 2: core::panicking::panic_bounds_check at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:208 3: as core::iter::traits::collect::Extend<::Item>>::extend 4: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 5: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 6: ra_ap_rustc_pattern_analysis::usefulness::collect_pattern_usefulness 7: ra_ap_rustc_pattern_analysis::usefulness::compute_match_usefulness 8: hir_ty::diagnostics::expr::BodyValidationDiagnostic::collect 9: hir::DefWithBody::diagnostics 10: hir::ModuleDef::diagnostics 11: hir::Module::diagnostics 12: ide_diagnostics::diagnostics 13: std::panicking::try 14: ide::Analysis::assists_with_fixes 15: rust_analyzer::handlers::request::handle_code_action 16: std::panicking::try 17: core::ops::function::FnOnce::call_once{{vtable.shim}} note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.