diff options
Diffstat (limited to 'crates/ra_hir_expand/src')
-rw-r--r-- | crates/ra_hir_expand/src/builtin_derive.rs | 2 | ||||
-rw-r--r-- | crates/ra_hir_expand/src/builtin_macro.rs | 13 | ||||
-rw-r--r-- | crates/ra_hir_expand/src/quote.rs | 8 |
3 files changed, 9 insertions, 14 deletions
diff --git a/crates/ra_hir_expand/src/builtin_derive.rs b/crates/ra_hir_expand/src/builtin_derive.rs index 62c60e336..d0e3eaf7e 100644 --- a/crates/ra_hir_expand/src/builtin_derive.rs +++ b/crates/ra_hir_expand/src/builtin_derive.rs | |||
@@ -235,7 +235,7 @@ mod tests { | |||
235 | let (db, file_id) = TestDB::with_single_file(&s); | 235 | let (db, file_id) = TestDB::with_single_file(&s); |
236 | let parsed = db.parse(file_id); | 236 | let parsed = db.parse(file_id); |
237 | let items: Vec<_> = | 237 | let items: Vec<_> = |
238 | parsed.syntax_node().descendants().filter_map(|it| ast::ModuleItem::cast(it)).collect(); | 238 | parsed.syntax_node().descendants().filter_map(ast::ModuleItem::cast).collect(); |
239 | 239 | ||
240 | let ast_id_map = db.ast_id_map(file_id.into()); | 240 | let ast_id_map = db.ast_id_map(file_id.into()); |
241 | 241 | ||
diff --git a/crates/ra_hir_expand/src/builtin_macro.rs b/crates/ra_hir_expand/src/builtin_macro.rs index f3f959ac6..f2bb0bddb 100644 --- a/crates/ra_hir_expand/src/builtin_macro.rs +++ b/crates/ra_hir_expand/src/builtin_macro.rs | |||
@@ -155,14 +155,11 @@ fn compile_error_expand( | |||
155 | tt: &tt::Subtree, | 155 | tt: &tt::Subtree, |
156 | ) -> Result<tt::Subtree, mbe::ExpandError> { | 156 | ) -> Result<tt::Subtree, mbe::ExpandError> { |
157 | if tt.count() == 1 { | 157 | if tt.count() == 1 { |
158 | match &tt.token_trees[0] { | 158 | if let tt::TokenTree::Leaf(tt::Leaf::Literal(it)) = &tt.token_trees[0] { |
159 | tt::TokenTree::Leaf(tt::Leaf::Literal(it)) => { | 159 | let s = it.text.as_str(); |
160 | let s = it.text.as_str(); | 160 | if s.contains('"') { |
161 | if s.contains(r#"""#) { | 161 | return Ok(quote! { loop { #it }}); |
162 | return Ok(quote! { loop { #it }}); | ||
163 | } | ||
164 | } | 162 | } |
165 | _ => {} | ||
166 | }; | 163 | }; |
167 | } | 164 | } |
168 | 165 | ||
@@ -222,7 +219,7 @@ mod tests { | |||
222 | let (db, file_id) = TestDB::with_single_file(&s); | 219 | let (db, file_id) = TestDB::with_single_file(&s); |
223 | let parsed = db.parse(file_id); | 220 | let parsed = db.parse(file_id); |
224 | let macro_calls: Vec<_> = | 221 | let macro_calls: Vec<_> = |
225 | parsed.syntax_node().descendants().filter_map(|it| ast::MacroCall::cast(it)).collect(); | 222 | parsed.syntax_node().descendants().filter_map(ast::MacroCall::cast).collect(); |
226 | 223 | ||
227 | let ast_id_map = db.ast_id_map(file_id.into()); | 224 | let ast_id_map = db.ast_id_map(file_id.into()); |
228 | 225 | ||
diff --git a/crates/ra_hir_expand/src/quote.rs b/crates/ra_hir_expand/src/quote.rs index 4de219ce4..57e7eebf9 100644 --- a/crates/ra_hir_expand/src/quote.rs +++ b/crates/ra_hir_expand/src/quote.rs | |||
@@ -15,14 +15,13 @@ macro_rules! __quote { | |||
15 | ( @SUBTREE $delim:ident $($tt:tt)* ) => { | 15 | ( @SUBTREE $delim:ident $($tt:tt)* ) => { |
16 | { | 16 | { |
17 | let children = $crate::__quote!($($tt)*); | 17 | let children = $crate::__quote!($($tt)*); |
18 | let subtree = tt::Subtree { | 18 | tt::Subtree { |
19 | delimiter: Some(tt::Delimiter { | 19 | delimiter: Some(tt::Delimiter { |
20 | kind: tt::DelimiterKind::$delim, | 20 | kind: tt::DelimiterKind::$delim, |
21 | id: tt::TokenId::unspecified(), | 21 | id: tt::TokenId::unspecified(), |
22 | }), | 22 | }), |
23 | token_trees: $crate::quote::IntoTt::to_tokens(children), | 23 | token_trees: $crate::quote::IntoTt::to_tokens(children), |
24 | }; | 24 | } |
25 | subtree | ||
26 | } | 25 | } |
27 | }; | 26 | }; |
28 | 27 | ||
@@ -259,8 +258,7 @@ mod tests { | |||
259 | // } | 258 | // } |
260 | let struct_name = mk_ident("Foo"); | 259 | let struct_name = mk_ident("Foo"); |
261 | let fields = [mk_ident("name"), mk_ident("id")]; | 260 | let fields = [mk_ident("name"), mk_ident("id")]; |
262 | let fields = | 261 | let fields = fields.iter().map(|it| quote!(#it: self.#it.clone(), ).token_trees).flatten(); |
263 | fields.iter().map(|it| quote!(#it: self.#it.clone(), ).token_trees.clone()).flatten(); | ||
264 | 262 | ||
265 | let list = tt::Subtree { | 263 | let list = tt::Subtree { |
266 | delimiter: Some(tt::Delimiter { | 264 | delimiter: Some(tt::Delimiter { |