Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/context/analysis.rs')
-rw-r--r--crates/ide-completion/src/context/analysis.rs21
1 files changed, 4 insertions, 17 deletions
diff --git a/crates/ide-completion/src/context/analysis.rs b/crates/ide-completion/src/context/analysis.rs
index 8f58c2181e..5959973589 100644
--- a/crates/ide-completion/src/context/analysis.rs
+++ b/crates/ide-completion/src/context/analysis.rs
@@ -7,7 +7,10 @@ use itertools::Either;
use syntax::{
AstNode, AstToken, Direction, NodeOrToken, SyntaxElement, SyntaxKind, SyntaxNode, SyntaxToken,
T, TextRange, TextSize,
- algo::{self, ancestors_at_offset, find_node_at_offset, non_trivia_sibling},
+ algo::{
+ self, ancestors_at_offset, find_node_at_offset, non_trivia_sibling,
+ previous_non_trivia_token,
+ },
ast::{
self, AttrKind, HasArgList, HasGenericArgs, HasGenericParams, HasLoopBody, HasName,
NameOrNameRef,
@@ -1813,22 +1816,6 @@ fn is_in_block(node: &SyntaxNode) -> bool {
.unwrap_or(false)
}
-fn previous_non_trivia_token(e: impl Into<SyntaxElement>) -> Option<SyntaxToken> {
- let mut token = match e.into() {
- SyntaxElement::Node(n) => n.first_token()?,
- SyntaxElement::Token(t) => t,
- }
- .prev_token();
- while let Some(inner) = token {
- if !inner.kind().is_trivia() {
- return Some(inner);
- } else {
- token = inner.prev_token();
- }
- }
- None
-}
-
fn next_non_trivia_token(e: impl Into<SyntaxElement>) -> Option<SyntaxToken> {
let mut token = match e.into() {
SyntaxElement::Node(n) => n.last_token()?,