From cae2498513601c507bb10b15710feb800a24517f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 16 Apr 2020 19:21:18 +0200 Subject: Don't expose SyntaxNodePtr impl details --- crates/ra_ide/src/display/navigation_target.rs | 2 +- crates/ra_ide_db/src/symbol_index.rs | 4 +++- crates/ra_syntax/src/algo.rs | 2 +- crates/ra_syntax/src/ptr.rs | 8 ++------ 4 files changed, 7 insertions(+), 9 deletions(-) (limited to 'crates') diff --git a/crates/ra_ide/src/display/navigation_target.rs b/crates/ra_ide/src/display/navigation_target.rs index e61846995..6289f53f3 100644 --- a/crates/ra_ide/src/display/navigation_target.rs +++ b/crates/ra_ide/src/display/navigation_target.rs @@ -175,7 +175,7 @@ impl ToNav for FileSymbol { NavigationTarget { file_id: self.file_id, name: self.name.clone(), - kind: self.ptr.kind(), + kind: self.kind, full_range: self.ptr.range(), focus_range: self.name_range, container_name: self.container_name.clone(), diff --git a/crates/ra_ide_db/src/symbol_index.rs b/crates/ra_ide_db/src/symbol_index.rs index d30458d86..937abb433 100644 --- a/crates/ra_ide_db/src/symbol_index.rs +++ b/crates/ra_ide_db/src/symbol_index.rs @@ -285,7 +285,7 @@ impl Query { let (start, end) = SymbolIndex::map_value_to_range(indexed_value.value); for symbol in &symbol_index.symbols[start..end] { - if self.only_types && !is_type(symbol.ptr.kind()) { + if self.only_types && !is_type(symbol.kind) { continue; } if self.exact && symbol.name != self.query { @@ -312,6 +312,7 @@ fn is_type(kind: SyntaxKind) -> bool { pub struct FileSymbol { pub file_id: FileId, pub name: SmolStr, + pub kind: SyntaxKind, pub ptr: SyntaxNodePtr, pub name_range: Option, pub container_name: Option, @@ -377,6 +378,7 @@ fn to_symbol(node: &SyntaxNode) -> Option<(SmolStr, SyntaxNodePtr, TextRange)> { fn to_file_symbol(node: &SyntaxNode, file_id: FileId) -> Option { to_symbol(node).map(move |(name, ptr, name_range)| FileSymbol { name, + kind: node.kind(), ptr, file_id, name_range: Some(name_range), diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index 7f87f4212..ea41bf85d 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs @@ -351,7 +351,7 @@ fn with_children( // FIXME: use a more elegant way to re-fetch the node (#1185), make // `range` private afterwards let mut ptr = SyntaxNodePtr::new(parent); - ptr.range = TextRange::offset_len(ptr.range().start(), len); + ptr.range = TextRange::offset_len(ptr.range.start(), len); ptr.to_node(&new_root_node) } diff --git a/crates/ra_syntax/src/ptr.rs b/crates/ra_syntax/src/ptr.rs index bc48a2e71..3be648c2a 100644 --- a/crates/ra_syntax/src/ptr.rs +++ b/crates/ra_syntax/src/ptr.rs @@ -34,12 +34,8 @@ impl SyntaxNodePtr { self.range } - pub fn kind(&self) -> SyntaxKind { - self.kind - } - pub fn cast(self) -> Option> { - if !N::can_cast(self.kind()) { + if !N::can_cast(self.kind) { return None; } Some(AstPtr { raw: self, _ty: PhantomData }) @@ -88,7 +84,7 @@ impl AstPtr { } pub fn cast(self) -> Option> { - if !U::can_cast(self.raw.kind()) { + if !U::can_cast(self.raw.kind) { return None; } Some(AstPtr { raw: self.raw, _ty: PhantomData }) -- cgit v1.2.3