From 76285f16deabe8175f0bfa9ebd913b9edef302f8 Mon Sep 17 00:00:00 2001 From: Dawer <7803845+iDawer@users.noreply.github.com> Date: Sat, 17 Apr 2021 15:20:29 +0500 Subject: Test fill-match-arms assist: partial with wildcards --- crates/ide_assists/src/handlers/fill_match_arms.rs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/crates/ide_assists/src/handlers/fill_match_arms.rs b/crates/ide_assists/src/handlers/fill_match_arms.rs index e4794f17c..6408d7f0b 100644 --- a/crates/ide_assists/src/handlers/fill_match_arms.rs +++ b/crates/ide_assists/src/handlers/fill_match_arms.rs @@ -504,6 +504,40 @@ fn main() { ); } + // Fixme: This fails with extra useless match arms added. + // To fix, it needs full fledged match exhaustiveness checking from + // hir_ty::diagnostics::match_check + // see https://github.com/rust-analyzer/rust-analyzer/issues/8493 + #[ignore] + #[test] + fn fill_match_arms_tuple_of_enum_partial_with_wildcards() { + let ra_fixture = r#" +fn main() { + let a = Some(1); + let b = Some(()); + match (a$0, b) { + (Some(_), _) => {} + (None, Some(_)) => {} + } +} +"#; + check_assist( + fill_match_arms, + &format!("//- /main.rs crate:main deps:core{}{}", ra_fixture, FamousDefs::FIXTURE), + r#" +fn main() { + let a = Some(1); + let b = Some(()); + match (a, b) { + (Some(_), _) => {} + (None, Some(_)) => {} + $0(None, None) => {} + } +} +"#, + ); + } + #[test] fn fill_match_arms_tuple_of_enum_not_applicable() { check_assist_not_applicable( -- cgit v1.2.3