]> git.lizzy.rs Git - rust.git/commitdiff
Minor cleanup
authorAleksey Kladov <aleksey.kladov@gmail.com>
Sat, 9 Nov 2019 09:49:35 +0000 (12:49 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Sat, 9 Nov 2019 09:49:35 +0000 (12:49 +0300)
crates/ra_hir_expand/src/lib.rs

index b219b8fbf8fb2caa3c5ca6754683f88a2f05ac5d..151d1d7858ed881459f464af6a3eae26339fc6d3 100644 (file)
@@ -151,19 +151,21 @@ pub struct ExpansionInfo {
 
 impl ExpansionInfo {
     pub fn find_range(&self, from: TextRange) -> Option<(HirFileId, TextRange)> {
-        fn look_in_rev_map(exp_map: &mbe::RevTokenMap, from: TextRange) -> Option<tt::TokenId> {
-            exp_map.ranges.iter().find(|&it| it.0.is_subrange(&from)).map(|it| it.1)
-        }
-
         let token_id = look_in_rev_map(&self.exp_map, from)?;
-        let (token_map, file_offset, token_id) = if token_id.0 >= self.shift {
+
+        let (token_map, (file_id, start_offset), token_id) = if token_id.0 >= self.shift {
             (&self.macro_arg.1, self.arg_start, tt::TokenId(token_id.0 - self.shift).into())
         } else {
             (&self.macro_def.1, self.def_start, token_id)
         };
 
         let range = token_map.relative_range_of(token_id)?;
-        Some((file_offset.0, TextRange::offset_len(range.start() + file_offset.1, range.len())))
+
+        return Some((file_id, range + start_offset));
+
+        fn look_in_rev_map(exp_map: &mbe::RevTokenMap, from: TextRange) -> Option<tt::TokenId> {
+            exp_map.ranges.iter().find(|&it| it.0.is_subrange(&from)).map(|it| it.1)
+        }
     }
 }