aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/raw.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/raw.rs24
1 files changed, 14 insertions, 10 deletions
diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs
index aed9dcc72..a71503c76 100644
--- a/crates/ra_hir_def/src/nameres/raw.rs
+++ b/crates/ra_hir_def/src/nameres/raw.rs
@@ -404,16 +404,20 @@ impl RawItemsCollector {
404 let ast_id = self.source_ast_id_map.ast_id(&m); 404 let ast_id = self.source_ast_id_map.ast_id(&m);
405 405
406 // FIXME: cfg_attr 406 // FIXME: cfg_attr
407 let export = attrs.by_key("macro_export").exists(); 407 let export_attr = attrs.by_key("macro_export");
408 let local_inner = 408
409 attrs.by_key("macro_export").tt_values().map(|it| &it.token_trees).flatten().any( 409 let export = export_attr.exists();
410 |it| match it { 410 let local_inner = if export {
411 tt::TokenTree::Leaf(tt::Leaf::Ident(ident)) => { 411 export_attr.tt_values().map(|it| &it.token_trees).flatten().any(|it| match it {
412 ident.text.contains("local_inner_macros") 412 tt::TokenTree::Leaf(tt::Leaf::Ident(ident)) => {
413 } 413 ident.text.contains("local_inner_macros")
414 _ => false, 414 }
415 }, 415 _ => false,
416 ); 416 })
417 } else {
418 false
419 };
420
417 let builtin = attrs.by_key("rustc_builtin_macro").exists(); 421 let builtin = attrs.by_key("rustc_builtin_macro").exists();
418 422
419 let m = self.raw_items.macros.alloc(MacroData { 423 let m = self.raw_items.macros.alloc(MacroData {