From 5728d7186e64966a20ece3dc479153219a47ba17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20Buga?= Date: Fri, 22 Jan 2021 23:31:19 +0100 Subject: Deduplicate variant matching --- crates/assists/src/handlers/fill_match_arms.rs | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'crates/assists/src/handlers/fill_match_arms.rs') diff --git a/crates/assists/src/handlers/fill_match_arms.rs b/crates/assists/src/handlers/fill_match_arms.rs index da47187e4..7663d211d 100644 --- a/crates/assists/src/handlers/fill_match_arms.rs +++ b/crates/assists/src/handlers/fill_match_arms.rs @@ -8,7 +8,7 @@ use syntax::ast::{self, make, AstNode, MatchArm, NameOwner, Pat}; use test_utils::mark; use crate::{ - utils::{render_snippet, Cursor}, + utils::{does_pat_match_variant, render_snippet, Cursor}, AssistContext, AssistId, AssistKind, Assists, }; @@ -147,25 +147,6 @@ fn is_variant_missing(existing_arms: &mut Vec, var: &Pat) -> bool { }) } -fn does_pat_match_variant(pat: &Pat, var: &Pat) -> bool { - let first_node_text = |pat: &Pat| pat.syntax().first_child().map(|node| node.text()); - - let pat_head = match pat { - Pat::IdentPat(bind_pat) => { - if let Some(p) = bind_pat.pat() { - first_node_text(&p) - } else { - return false; - } - } - pat => first_node_text(pat), - }; - - let var_head = first_node_text(var); - - pat_head == var_head -} - fn resolve_enum_def(sema: &Semantics, expr: &ast::Expr) -> Option { sema.type_of_expr(&expr)?.autoderef(sema.db).find_map(|ty| match ty.as_adt() { Some(Adt::Enum(e)) => Some(e), -- cgit v1.2.3