Skip to content

Commit 41f5471

Browse files
committed
fill_match_arms bind pattern implementation
1 parent 34db4ed commit 41f5471

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

crates/ra_assists/src/handlers/fill_match_arms.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,20 @@ fn is_variant_missing(existing_arms: &mut Vec<MatchArm>, var: &Pat) -> bool {
136136
}
137137

138138
fn does_pat_match_variant(pat: &Pat, var: &Pat) -> bool {
139-
let pat_head = pat.syntax().first_child().map(|node| node.text());
140-
let var_head = var.syntax().first_child().map(|node| node.text());
139+
let first_node_text = |pat: &Pat| pat.syntax().first_child().map(|node| node.text());
140+
141+
let pat_head = match pat {
142+
Pat::BindPat(bind_pat) => {
143+
if let Some(p) = bind_pat.pat() {
144+
first_node_text(&p)
145+
} else {
146+
return false;
147+
}
148+
}
149+
pat => first_node_text(pat),
150+
};
151+
152+
let var_head = first_node_text(var);
141153

142154
pat_head == var_head
143155
}

0 commit comments

Comments
 (0)