From: Dawer <7803845+iDawer@users.noreply.github.com> Date: Sat, 17 Apr 2021 10:20:29 +0000 (+0500) Subject: Test fill-match-arms assist: partial with wildcards X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=76285f16deabe8175f0bfa9ebd913b9edef302f8;p=rust.git Test fill-match-arms assist: partial with wildcards --- diff --git a/crates/ide_assists/src/handlers/fill_match_arms.rs b/crates/ide_assists/src/handlers/fill_match_arms.rs index e4794f17c95..6408d7f0bf8 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(