diff options
Diffstat (limited to 'crates/syntax')
-rw-r--r-- | crates/syntax/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/syntax/src/algo.rs | 26 |
2 files changed, 13 insertions, 14 deletions
diff --git a/crates/syntax/Cargo.toml b/crates/syntax/Cargo.toml index 9ee3a8586..c39095def 100644 --- a/crates/syntax/Cargo.toml +++ b/crates/syntax/Cargo.toml | |||
@@ -11,6 +11,7 @@ edition = "2018" | |||
11 | doctest = false | 11 | doctest = false |
12 | 12 | ||
13 | [dependencies] | 13 | [dependencies] |
14 | cov-mark = "1.1" | ||
14 | itertools = "0.10.0" | 15 | itertools = "0.10.0" |
15 | rowan = "0.12.2" | 16 | rowan = "0.12.2" |
16 | rustc_lexer = { version = "709.0.0", package = "rustc-ap-rustc_lexer" } | 17 | rustc_lexer = { version = "709.0.0", package = "rustc-ap-rustc_lexer" } |
diff --git a/crates/syntax/src/algo.rs b/crates/syntax/src/algo.rs index 2ff92f9f6..b13252eec 100644 --- a/crates/syntax/src/algo.rs +++ b/crates/syntax/src/algo.rs | |||
@@ -10,7 +10,6 @@ use std::{ | |||
10 | use indexmap::IndexMap; | 10 | use indexmap::IndexMap; |
11 | use itertools::Itertools; | 11 | use itertools::Itertools; |
12 | use rustc_hash::FxHashMap; | 12 | use rustc_hash::FxHashMap; |
13 | use test_utils::mark; | ||
14 | use text_edit::TextEditBuilder; | 13 | use text_edit::TextEditBuilder; |
15 | 14 | ||
16 | use crate::{ | 15 | use crate::{ |
@@ -184,7 +183,7 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff { | |||
184 | let (lhs, rhs) = match lhs.as_node().zip(rhs.as_node()) { | 183 | let (lhs, rhs) = match lhs.as_node().zip(rhs.as_node()) { |
185 | Some((lhs, rhs)) => (lhs, rhs), | 184 | Some((lhs, rhs)) => (lhs, rhs), |
186 | _ => { | 185 | _ => { |
187 | mark::hit!(diff_node_token_replace); | 186 | cov_mark::hit!(diff_node_token_replace); |
188 | diff.replacements.insert(lhs, rhs); | 187 | diff.replacements.insert(lhs, rhs); |
189 | return; | 188 | return; |
190 | } | 189 | } |
@@ -202,19 +201,19 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff { | |||
202 | (None, Some(element)) => { | 201 | (None, Some(element)) => { |
203 | let insert_pos = match last_lhs.clone() { | 202 | let insert_pos = match last_lhs.clone() { |
204 | Some(prev) => { | 203 | Some(prev) => { |
205 | mark::hit!(diff_insert); | 204 | cov_mark::hit!(diff_insert); |
206 | TreeDiffInsertPos::After(prev) | 205 | TreeDiffInsertPos::After(prev) |
207 | } | 206 | } |
208 | // first iteration, insert into out parent as the first child | 207 | // first iteration, insert into out parent as the first child |
209 | None => { | 208 | None => { |
210 | mark::hit!(diff_insert_as_first_child); | 209 | cov_mark::hit!(diff_insert_as_first_child); |
211 | TreeDiffInsertPos::AsFirstChild(lhs.clone().into()) | 210 | TreeDiffInsertPos::AsFirstChild(lhs.clone().into()) |
212 | } | 211 | } |
213 | }; | 212 | }; |
214 | diff.insertions.entry(insert_pos).or_insert_with(Vec::new).push(element); | 213 | diff.insertions.entry(insert_pos).or_insert_with(Vec::new).push(element); |
215 | } | 214 | } |
216 | (Some(element), None) => { | 215 | (Some(element), None) => { |
217 | mark::hit!(diff_delete); | 216 | cov_mark::hit!(diff_delete); |
218 | diff.deletions.push(element); | 217 | diff.deletions.push(element); |
219 | } | 218 | } |
220 | (Some(ref lhs_ele), Some(ref rhs_ele)) if syntax_element_eq(lhs_ele, rhs_ele) => {} | 219 | (Some(ref lhs_ele), Some(ref rhs_ele)) if syntax_element_eq(lhs_ele, rhs_ele) => {} |
@@ -228,7 +227,7 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff { | |||
228 | let mut insert = false; | 227 | let mut insert = false; |
229 | while let Some(rhs_child) = rhs_children_clone.next() { | 228 | while let Some(rhs_child) = rhs_children_clone.next() { |
230 | if syntax_element_eq(&lhs_ele, &rhs_child) { | 229 | if syntax_element_eq(&lhs_ele, &rhs_child) { |
231 | mark::hit!(diff_insertions); | 230 | cov_mark::hit!(diff_insertions); |
232 | insert = true; | 231 | insert = true; |
233 | break; | 232 | break; |
234 | } else { | 233 | } else { |
@@ -240,7 +239,7 @@ pub fn diff(from: &SyntaxNode, to: &SyntaxNode) -> TreeDiff { | |||
240 | let insert_pos = if let Some(prev) = last_lhs.clone().filter(|_| insert) { | 239 | let insert_pos = if let Some(prev) = last_lhs.clone().filter(|_| insert) { |
241 | TreeDiffInsertPos::After(prev) | 240 | TreeDiffInsertPos::After(prev) |
242 | } else { | 241 | } else { |
243 | mark::hit!(insert_first_child); | 242 | cov_mark::hit!(insert_first_child); |
244 | TreeDiffInsertPos::AsFirstChild(lhs.clone().into()) | 243 | TreeDiffInsertPos::AsFirstChild(lhs.clone().into()) |
245 | }; | 244 | }; |
246 | 245 | ||
@@ -635,14 +634,13 @@ mod tests { | |||
635 | use expect_test::{expect, Expect}; | 634 | use expect_test::{expect, Expect}; |
636 | use itertools::Itertools; | 635 | use itertools::Itertools; |
637 | use parser::SyntaxKind; | 636 | use parser::SyntaxKind; |
638 | use test_utils::mark; | ||
639 | use text_edit::TextEdit; | 637 | use text_edit::TextEdit; |
640 | 638 | ||
641 | use crate::{AstNode, SyntaxElement}; | 639 | use crate::{AstNode, SyntaxElement}; |
642 | 640 | ||
643 | #[test] | 641 | #[test] |
644 | fn replace_node_token() { | 642 | fn replace_node_token() { |
645 | mark::check!(diff_node_token_replace); | 643 | cov_mark::check!(diff_node_token_replace); |
646 | check_diff( | 644 | check_diff( |
647 | r#"use node;"#, | 645 | r#"use node;"#, |
648 | r#"ident"#, | 646 | r#"ident"#, |
@@ -666,7 +664,7 @@ mod tests { | |||
666 | 664 | ||
667 | #[test] | 665 | #[test] |
668 | fn replace_parent() { | 666 | fn replace_parent() { |
669 | mark::check!(diff_insert_as_first_child); | 667 | cov_mark::check!(diff_insert_as_first_child); |
670 | check_diff( | 668 | check_diff( |
671 | r#""#, | 669 | r#""#, |
672 | r#"use foo::bar;"#, | 670 | r#"use foo::bar;"#, |
@@ -689,7 +687,7 @@ mod tests { | |||
689 | 687 | ||
690 | #[test] | 688 | #[test] |
691 | fn insert_last() { | 689 | fn insert_last() { |
692 | mark::check!(diff_insert); | 690 | cov_mark::check!(diff_insert); |
693 | check_diff( | 691 | check_diff( |
694 | r#" | 692 | r#" |
695 | use foo; | 693 | use foo; |
@@ -774,7 +772,7 @@ use baz;"#, | |||
774 | 772 | ||
775 | #[test] | 773 | #[test] |
776 | fn first_child_insertion() { | 774 | fn first_child_insertion() { |
777 | mark::check!(insert_first_child); | 775 | cov_mark::check!(insert_first_child); |
778 | check_diff( | 776 | check_diff( |
779 | r#"fn main() { | 777 | r#"fn main() { |
780 | stdi | 778 | stdi |
@@ -804,7 +802,7 @@ use baz;"#, | |||
804 | 802 | ||
805 | #[test] | 803 | #[test] |
806 | fn delete_last() { | 804 | fn delete_last() { |
807 | mark::check!(diff_delete); | 805 | cov_mark::check!(diff_delete); |
808 | check_diff( | 806 | check_diff( |
809 | r#"use foo; | 807 | r#"use foo; |
810 | use bar;"#, | 808 | use bar;"#, |
@@ -828,7 +826,7 @@ use baz;"#, | |||
828 | 826 | ||
829 | #[test] | 827 | #[test] |
830 | fn delete_middle() { | 828 | fn delete_middle() { |
831 | mark::check!(diff_insertions); | 829 | cov_mark::check!(diff_insertions); |
832 | check_diff( | 830 | check_diff( |
833 | r#" | 831 | r#" |
834 | use expect_test::{expect, Expect}; | 832 | use expect_test::{expect, Expect}; |