Skip to content

Commit bf262cd

Browse files
committed
simplify
1 parent 7de925b commit bf262cd

File tree

2 files changed

+9
-18
lines changed

2 files changed

+9
-18
lines changed

crates/ide_completion/src/context.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ use text_edit::Indel;
1818
use crate::{
1919
patterns::{
2020
for_is_prev2, has_bind_pat_parent, has_block_expr_parent, has_field_list_parent,
21-
has_impl_as_prev_sibling, has_impl_parent, has_item_list_or_source_file_parent,
22-
has_ref_parent, has_trait_as_prev_sibling, has_trait_parent, inside_impl_trait_block,
23-
is_in_loop_body, is_match_arm, previous_token,
21+
has_impl_parent, has_item_list_or_source_file_parent, has_prev_sibling, has_ref_parent,
22+
has_trait_parent, inside_impl_trait_block, is_in_loop_body, is_match_arm, previous_token,
2423
},
2524
CompletionConfig,
2625
};
@@ -323,9 +322,9 @@ impl<'a> CompletionContext<'a> {
323322
self.previous_token = previous_token(syntax_element.clone());
324323
self.in_loop_body = is_in_loop_body(syntax_element.clone());
325324
self.is_match_arm = is_match_arm(syntax_element.clone());
326-
if has_impl_as_prev_sibling(syntax_element.clone()) {
325+
if has_prev_sibling(syntax_element.clone(), IMPL) {
327326
self.prev_sibling = Some(PrevSibling::Impl)
328-
} else if has_trait_as_prev_sibling(syntax_element.clone()) {
327+
} else if has_prev_sibling(syntax_element.clone(), TRAIT) {
329328
self.prev_sibling = Some(PrevSibling::Trait)
330329
}
331330

crates/ide_completion/src/patterns.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use syntax::{
44
algo::non_trivia_sibling,
55
ast::{self, LoopBodyOwner},
66
match_ast, AstNode, Direction, NodeOrToken, SyntaxElement,
7-
SyntaxKind::*,
7+
SyntaxKind::{self, *},
88
SyntaxNode, SyntaxToken, T,
99
};
1010

@@ -71,7 +71,7 @@ fn test_has_block_expr_parent() {
7171
}
7272

7373
pub(crate) fn has_bind_pat_parent(element: SyntaxElement) -> bool {
74-
element.ancestors().any(|it| it.kind() == IDENT_PAT)
74+
not_same_range_ancestor(element).filter(|it| it.kind() == IDENT_PAT).is_some()
7575
}
7676
#[test]
7777
fn test_has_bind_pat_parent() {
@@ -133,20 +133,12 @@ fn test_for_is_prev2() {
133133
check_pattern_is_applicable(r"for i i$0", for_is_prev2);
134134
}
135135

136-
pub(crate) fn has_trait_as_prev_sibling(element: SyntaxElement) -> bool {
137-
previous_sibling_or_ancestor_sibling(element).filter(|it| it.kind() == TRAIT).is_some()
138-
}
139-
#[test]
140-
fn test_has_trait_as_prev_sibling() {
141-
check_pattern_is_applicable(r"trait A w$0 {}", has_trait_as_prev_sibling);
142-
}
143-
144-
pub(crate) fn has_impl_as_prev_sibling(element: SyntaxElement) -> bool {
145-
previous_sibling_or_ancestor_sibling(element).filter(|it| it.kind() == IMPL).is_some()
136+
pub(crate) fn has_prev_sibling(element: SyntaxElement, kind: SyntaxKind) -> bool {
137+
previous_sibling_or_ancestor_sibling(element).filter(|it| it.kind() == kind).is_some()
146138
}
147139
#[test]
148140
fn test_has_impl_as_prev_sibling() {
149-
check_pattern_is_applicable(r"impl A w$0 {}", has_impl_as_prev_sibling);
141+
check_pattern_is_applicable(r"impl A w$0 {}", |it| has_prev_sibling(it, IMPL));
150142
}
151143

152144
pub(crate) fn is_in_loop_body(element: SyntaxElement) -> bool {

0 commit comments

Comments
 (0)