]> git.lizzy.rs Git - rust.git/commitdiff
Use text_range::extend_to
authorEdwin Cheng <edwin0cheng@gmail.com>
Thu, 27 Feb 2020 02:06:48 +0000 (10:06 +0800)
committerEdwin Cheng <edwin0cheng@gmail.com>
Thu, 27 Feb 2020 02:06:48 +0000 (10:06 +0800)
crates/ra_hir/src/semantics.rs
crates/ra_ide/src/extend_selection.rs
crates/ra_text_edit/Cargo.toml
crates/test_utils/Cargo.toml

index 5b0b94e34d44c4a020ecb5ff9d3c5492b132d7f6..c3d8ee1aef8d7123eaa8c50d8424e579976a5836 100644 (file)
@@ -388,7 +388,7 @@ fn original_range_and_origin(
     let single = skip_trivia_token(node.value.first_token()?, Direction::Next)?
         == skip_trivia_token(node.value.last_token()?, Direction::Prev)?;
 
-    return Some(node.value.descendants().find_map(|it| {
+    Some(node.value.descendants().find_map(|it| {
         let first = skip_trivia_token(it.first_token()?, Direction::Next)?;
         let last = skip_trivia_token(it.last_token()?, Direction::Prev)?;
 
@@ -404,16 +404,9 @@ fn original_range_and_origin(
             return None;
         }
 
-        // FIXME: Add union method in TextRange
         Some((
-            first.with_value(union_range(first.value.text_range(), last.value.text_range())),
+            first.with_value(first.value.text_range().extend_to(&last.value.text_range())),
             first_origin,
         ))
-    })?);
-
-    fn union_range(a: TextRange, b: TextRange) -> TextRange {
-        let start = a.start().min(b.start());
-        let end = a.end().max(b.end());
-        TextRange::from_to(start, end)
-    }
+    })?)
 }
index 2e09bd1ec3faa3ac8d1f818dee74915d82c68ec8..f5a06335128a40be39da0e38b4c869f77b7822ae 100644 (file)
@@ -161,7 +161,7 @@ fn extend_tokens_from_range(
     .take_while(validate)
     .last()?;
 
-    let range = union_range(first.text_range(), last.text_range());
+    let range = first.text_range().extend_to(&last.text_range());
     if original_range.is_subrange(&range) && original_range != range {
         Some(range)
     } else {
@@ -169,12 +169,6 @@ fn extend_tokens_from_range(
     }
 }
 
-fn union_range(range: TextRange, r: TextRange) -> TextRange {
-    let start = range.start().min(r.start());
-    let end = range.end().max(r.end());
-    TextRange::from_to(start, end)
-}
-
 /// Find the shallowest node with same range, which allows us to traverse siblings.
 fn shallowest_node(node: &SyntaxNode) -> SyntaxNode {
     node.ancestors().take_while(|n| n.text_range() == node.text_range()).last().unwrap()
index a3214929970ba7c45009c5b885ee2b2bcd498382..97280f86696f674aed3065f8f1324726aceb3c91 100644 (file)
@@ -9,7 +9,7 @@ publish = false
 doctest = false
 
 [dependencies]
-text_unit = "0.1.9"
+text_unit = "0.1.10"
 
 [dev-dependencies]
 test_utils = { path = "../test_utils" }
index 971592b7370bff11261c88444bb974f9a6ce67f6..6a7c6d6f9efbc5ea90700ce3344d36637fba4654 100644 (file)
@@ -9,5 +9,5 @@ doctest = false
 
 [dependencies]
 difference = "2.0.0"
-text_unit = "0.1.9"
+text_unit = "0.1.10"
 serde_json = "1.0.48"