From 0bf903411c6bf94a235383b2d60988ceee58ea90 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 18 Mar 2020 20:51:47 +0100 Subject: Use match_ast --- crates/ra_assists/src/handlers/move_bounds.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'crates/ra_assists/src/handlers') diff --git a/crates/ra_assists/src/handlers/move_bounds.rs b/crates/ra_assists/src/handlers/move_bounds.rs index 342a770ec..93f26f51a 100644 --- a/crates/ra_assists/src/handlers/move_bounds.rs +++ b/crates/ra_assists/src/handlers/move_bounds.rs @@ -1,6 +1,6 @@ use ra_syntax::{ ast::{self, edit::AstNodeEdit, make, AstNode, NameOwner, TypeBoundsOwner}, - SyntaxElement, + match_ast, SyntaxKind::*, }; @@ -34,15 +34,18 @@ pub(crate) fn move_bounds_to_where_clause(ctx: AssistCtx) -> Option { return None; } - let anchor: SyntaxElement = match parent.kind() { - FN_DEF => ast::FnDef::cast(parent)?.body()?.syntax().clone().into(), - TRAIT_DEF => ast::TraitDef::cast(parent)?.item_list()?.syntax().clone().into(), - IMPL_DEF => ast::ImplDef::cast(parent)?.item_list()?.syntax().clone().into(), - ENUM_DEF => ast::EnumDef::cast(parent)?.variant_list()?.syntax().clone().into(), - STRUCT_DEF => parent - .children_with_tokens() - .find(|it| it.kind() == RECORD_FIELD_DEF_LIST || it.kind() == SEMI)?, - _ => return None, + let anchor = match_ast! { + match parent { + ast::FnDef(it) => it.body()?.syntax().clone().into(), + ast::TraitDef(it) => it.item_list()?.syntax().clone().into(), + ast::ImplDef(it) => it.item_list()?.syntax().clone().into(), + ast::EnumDef(it) => it.variant_list()?.syntax().clone().into(), + ast::StructDef(it) => { + it.syntax().children_with_tokens() + .find(|it| it.kind() == RECORD_FIELD_DEF_LIST || it.kind() == SEMI)? + }, + _ => return None + } }; ctx.add_assist(AssistId("move_bounds_to_where_clause"), "Move to where clause", |edit| { -- cgit v1.2.3