aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/macros.rs')
-rw-r--r--crates/ra_hir/src/macros.rs22
1 files changed, 5 insertions, 17 deletions
diff --git a/crates/ra_hir/src/macros.rs b/crates/ra_hir/src/macros.rs
index cb8a9312e..95925159f 100644
--- a/crates/ra_hir/src/macros.rs
+++ b/crates/ra_hir/src/macros.rs
@@ -48,9 +48,7 @@ impl MacroDef {
48 48
49 let input = { 49 let input = {
50 let arg = macro_call.token_tree()?.syntax(); 50 let arg = macro_call.token_tree()?.syntax();
51 MacroInput { 51 MacroInput { text: arg.text().to_string() }
52 text: arg.text().to_string(),
53 }
54 }; 52 };
55 Some((def, input)) 53 Some((def, input))
56 } 54 }
@@ -68,20 +66,14 @@ impl MacroDef {
68 let ptr = SyntaxNodePtr::new(array_expr.syntax()); 66 let ptr = SyntaxNodePtr::new(array_expr.syntax());
69 let src_range = TextRange::offset_len(0.into(), TextUnit::of_str(&input.text)); 67 let src_range = TextRange::offset_len(0.into(), TextUnit::of_str(&input.text));
70 let ranges_map = vec![(src_range, array_expr.syntax().range())]; 68 let ranges_map = vec![(src_range, array_expr.syntax().range())];
71 let res = MacroExpansion { 69 let res = MacroExpansion { text, ranges_map, ptr };
72 text,
73 ranges_map,
74 ptr,
75 };
76 Some(res) 70 Some(res)
77 } 71 }
78 fn expand_query_group(self, input: MacroInput) -> Option<MacroExpansion> { 72 fn expand_query_group(self, input: MacroInput) -> Option<MacroExpansion> {
79 let anchor = "trait "; 73 let anchor = "trait ";
80 let pos = input.text.find(anchor)? + anchor.len(); 74 let pos = input.text.find(anchor)? + anchor.len();
81 let trait_name = input.text[pos..] 75 let trait_name =
82 .chars() 76 input.text[pos..].chars().take_while(|c| c.is_alphabetic()).collect::<String>();
83 .take_while(|c| c.is_alphabetic())
84 .collect::<String>();
85 if trait_name.is_empty() { 77 if trait_name.is_empty() {
86 return None; 78 return None;
87 } 79 }
@@ -92,11 +84,7 @@ impl MacroDef {
92 let name = trait_def.name()?; 84 let name = trait_def.name()?;
93 let ptr = SyntaxNodePtr::new(trait_def.syntax()); 85 let ptr = SyntaxNodePtr::new(trait_def.syntax());
94 let ranges_map = vec![(src_range, name.syntax().range())]; 86 let ranges_map = vec![(src_range, name.syntax().range())];
95 let res = MacroExpansion { 87 let res = MacroExpansion { text, ranges_map, ptr };
96 text,
97 ranges_map,
98 ptr,
99 };
100 Some(res) 88 Some(res)
101 } 89 }
102} 90}