mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-08-19 01:50:32 +00:00
⬆️ rowan
This commit is contained in:
parent
02edb4b31b
commit
cd21b0e9c1
5 changed files with 11 additions and 36 deletions
|
@ -4,6 +4,7 @@ use std::{
|
|||
fmt,
|
||||
hash::BuildHasherDefault,
|
||||
ops::{self, RangeInclusive},
|
||||
ptr,
|
||||
};
|
||||
|
||||
use indexmap::IndexMap;
|
||||
|
@ -171,7 +172,7 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff {
|
|||
&& lhs.text_range().len() == rhs.text_range().len()
|
||||
&& match (&lhs, &rhs) {
|
||||
(NodeOrToken::Node(lhs), NodeOrToken::Node(rhs)) => {
|
||||
lhs.green() == rhs.green() || lhs.text() == rhs.text()
|
||||
ptr::eq(lhs.green(), rhs.green()) || lhs.text() == rhs.text()
|
||||
}
|
||||
(NodeOrToken::Token(lhs), NodeOrToken::Token(rhs)) => lhs.text() == rhs.text(),
|
||||
_ => false,
|
||||
|
@ -566,7 +567,7 @@ impl<'a> SyntaxRewriter<'a> {
|
|||
|
||||
fn element_to_green(element: SyntaxElement) -> NodeOrToken<rowan::GreenNode, rowan::GreenToken> {
|
||||
match element {
|
||||
NodeOrToken::Node(it) => NodeOrToken::Node(it.green().clone()),
|
||||
NodeOrToken::Node(it) => NodeOrToken::Node(it.green().to_owned()),
|
||||
NodeOrToken::Token(it) => NodeOrToken::Token(it.green().clone()),
|
||||
}
|
||||
}
|
||||
|
@ -624,7 +625,7 @@ fn position_of_child(parent: &SyntaxNode, child: SyntaxElement) -> usize {
|
|||
|
||||
fn to_green_element(element: SyntaxElement) -> NodeOrToken<rowan::GreenNode, rowan::GreenToken> {
|
||||
match element {
|
||||
NodeOrToken::Node(it) => it.green().clone().into(),
|
||||
NodeOrToken::Node(it) => it.green().to_owned().into(),
|
||||
NodeOrToken::Token(it) => it.green().clone().into(),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -478,7 +478,7 @@ fn ast_from_text<N: AstNode>(text: &str) -> N {
|
|||
}
|
||||
|
||||
fn unroot(n: SyntaxNode) -> SyntaxNode {
|
||||
SyntaxNode::new_root(n.green().clone())
|
||||
SyntaxNode::new_root(n.green().to_owned())
|
||||
}
|
||||
|
||||
pub mod tokens {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue