From d91a98ec843ec8562c58ccb01a1e29d00cc744dc Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Mon, 7 Jan 2019 16:15:47 +0300 Subject: switch ra_syntax to new rowan API --- crates/ra_syntax/src/algo.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'crates/ra_syntax/src/algo.rs') diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs index 4b3548ea9..13f50d2ef 100644 --- a/crates/ra_syntax/src/algo.rs +++ b/crates/ra_syntax/src/algo.rs @@ -1,19 +1,23 @@ pub mod visit; -use crate::{SyntaxNode, SyntaxNodeRef, TextRange, TextUnit}; +use rowan::TransparentNewType; + +use crate::{SyntaxNode, TextRange, TextUnit}; pub use rowan::LeafAtOffset; -pub fn find_leaf_at_offset(node: SyntaxNodeRef, offset: TextUnit) -> LeafAtOffset { +pub fn find_leaf_at_offset(node: &SyntaxNode, offset: TextUnit) -> LeafAtOffset<&SyntaxNode> { match node.0.leaf_at_offset(offset) { LeafAtOffset::None => LeafAtOffset::None, - LeafAtOffset::Single(n) => LeafAtOffset::Single(SyntaxNode(n)), - LeafAtOffset::Between(l, r) => LeafAtOffset::Between(SyntaxNode(l), SyntaxNode(r)), + LeafAtOffset::Single(n) => LeafAtOffset::Single(SyntaxNode::from_repr(n)), + LeafAtOffset::Between(l, r) => { + LeafAtOffset::Between(SyntaxNode::from_repr(l), SyntaxNode::from_repr(r)) + } } } -pub fn find_covering_node(root: SyntaxNodeRef, range: TextRange) -> SyntaxNodeRef { - SyntaxNode(root.0.covering_node(range)) +pub fn find_covering_node(root: &SyntaxNode, range: TextRange) -> &SyntaxNode { + SyntaxNode::from_repr(root.0.covering_node(range)) } pub fn generate(seed: Option, step: impl Fn(&T) -> Option) -> impl Iterator { -- cgit v1.2.3