Unnamed repository; edit this file 'description' to name the repository.
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 0ef4678d11..ff1804fe95 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) => "", + }; +} + "#, + ) + } } |