diff options
| author | Jeroen Vannevel <jer_vannevel@outlook.com> | 2022-01-14 00:35:21 +0000 |
|---|---|---|
| committer | Jeroen Vannevel <jer_vannevel@outlook.com> | 2022-01-14 01:32:12 +0000 |
| commit | c955ea11b42dc7c0ac91fe1a12427171b86be4b7 (patch) | |
| tree | 79b95790d8845585fd417f6bfe406add3f322df3 | |
| parent | a347cb5f863fbaf62e2ebc4d7ae8842f2efe8dec (diff) | |
| download | rust-c955ea11b42dc7c0ac91fe1a12427171b86be4b7.tar.gz rust-c955ea11b42dc7c0ac91fe1a12427171b86be4b7.zip | |
support TuplePat
| -rw-r--r-- | crates/ide_assists/src/handlers/merge_match_arms.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/crates/ide_assists/src/handlers/merge_match_arms.rs b/crates/ide_assists/src/handlers/merge_match_arms.rs index 0ef4678d118..ff1804fe95d 100644 --- a/crates/ide_assists/src/handlers/merge_match_arms.rs +++ b/crates/ide_assists/src/handlers/merge_match_arms.rs @@ -131,6 +131,11 @@ fn get_arm_types(context: &AssistContext, arm: &MatchArm) -> HashMap<String, Opt recurse(&Some(field), map, ctx); } } + Some(ast::Pat::TuplePat(tuple)) => { + for field in tuple.fields() { + recurse(&Some(field), map, ctx); + } + } Some(ast::Pat::RecordPat(record)) => { if let Some(field_list) = record.record_pat_field_list() { for field in field_list.fields() { @@ -711,4 +716,19 @@ fn main(msg: Message) { "#, ) } + + #[test] + fn merge_match_arms_tuple() { + check_assist_not_applicable( + merge_match_arms, + r#" +fn func() { + match (0, "boo") { + (x, y) => $0"", + (y, x) => "", + }; +} + "#, + ) + } } |
