aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/algo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/src/algo.rs')
-rw-r--r--crates/ra_syntax/src/algo.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/crates/ra_syntax/src/algo.rs b/crates/ra_syntax/src/algo.rs
index acf677e7d..21fca99a6 100644
--- a/crates/ra_syntax/src/algo.rs
+++ b/crates/ra_syntax/src/algo.rs
@@ -95,16 +95,17 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff {
95 lhs: SyntaxElement, 95 lhs: SyntaxElement,
96 rhs: SyntaxElement, 96 rhs: SyntaxElement,
97 ) { 97 ) {
98 if lhs.kind() == rhs.kind() && lhs.text_range().len() == rhs.text_range().len() { 98 if lhs.kind() == rhs.kind()
99 if match (&lhs, &rhs) { 99 && lhs.text_range().len() == rhs.text_range().len()
100 && match (&lhs, &rhs) {
100 (NodeOrToken::Node(lhs), NodeOrToken::Node(rhs)) => { 101 (NodeOrToken::Node(lhs), NodeOrToken::Node(rhs)) => {
101 lhs.green() == rhs.green() || lhs.text() == rhs.text() 102 lhs.green() == rhs.green() || lhs.text() == rhs.text()
102 } 103 }
103 (NodeOrToken::Token(lhs), NodeOrToken::Token(rhs)) => lhs.text() == rhs.text(), 104 (NodeOrToken::Token(lhs), NodeOrToken::Token(rhs)) => lhs.text() == rhs.text(),
104 _ => false, 105 _ => false,
105 } {
106 return;
107 } 106 }
107 {
108 return;
108 } 109 }
109 if let (Some(lhs), Some(rhs)) = (lhs.as_node(), rhs.as_node()) { 110 if let (Some(lhs), Some(rhs)) = (lhs.as_node(), rhs.as_node()) {
110 if lhs.children_with_tokens().count() == rhs.children_with_tokens().count() { 111 if lhs.children_with_tokens().count() == rhs.children_with_tokens().count() {