|
1 | 1 | use rustc_ast::ast; |
2 | 2 | use rustc_ast::visit::Visitor; |
3 | | -use rustc_span::{Symbol, sym}; |
| 3 | +use rustc_span::sym; |
4 | 4 | use tracing::debug; |
5 | 5 |
|
| 6 | +use super::is_macro_name; |
6 | 7 | use crate::attr::MetaVisitor; |
7 | 8 | use crate::parse::macros::cfg_if::parse_cfg_if; |
8 | 9 | use crate::parse::macros::cfg_match::parse_cfg_match; |
@@ -42,27 +43,9 @@ impl<'a, 'ast: 'a> Visitor<'ast> for CfgIfVisitor<'a> { |
42 | 43 |
|
43 | 44 | impl<'a, 'ast: 'a> CfgIfVisitor<'a> { |
44 | 45 | fn visit_mac_inner(&mut self, mac: &'ast ast::MacCall) -> Result<(), &'static str> { |
45 | | - // Support both: |
46 | | - // ``` |
47 | | - // extern crate cfg_if; |
48 | | - // cfg_if::cfg_if! {..} |
49 | | - // ``` |
50 | | - // And: |
51 | | - // ``` |
52 | | - // #[macro_use] |
53 | | - // extern crate cfg_if; |
54 | | - // cfg_if! {..} |
55 | | - // ``` |
56 | | - match mac.path.segments.first() { |
57 | | - Some(first_segment) => { |
58 | | - if first_segment.ident.name != Symbol::intern("cfg_if") { |
59 | | - return Err("Expected cfg_if"); |
60 | | - } |
61 | | - } |
62 | | - None => { |
63 | | - return Err("Expected cfg_if"); |
64 | | - } |
65 | | - }; |
| 46 | + if !is_macro_name(mac, "cfg_if") { |
| 47 | + return Err("Expected cfg_if"); |
| 48 | + } |
66 | 49 |
|
67 | 50 | let items = parse_cfg_if(self.psess, mac)?; |
68 | 51 | self.mods |
@@ -102,26 +85,9 @@ impl<'a, 'ast: 'a> Visitor<'ast> for CfgMatchVisitor<'a> { |
102 | 85 |
|
103 | 86 | impl<'a, 'ast: 'a> CfgMatchVisitor<'a> { |
104 | 87 | fn visit_mac_inner(&mut self, mac: &'ast ast::MacCall) -> Result<(), &'static str> { |
105 | | - // Support both: |
106 | | - // ``` |
107 | | - // std::cfg_match! {..} |
108 | | - // core::cfg_match! {..} |
109 | | - // ``` |
110 | | - // And: |
111 | | - // ``` |
112 | | - // use std::cfg_match; |
113 | | - // cfg_match! {..} |
114 | | - // ``` |
115 | | - match mac.path.segments.last() { |
116 | | - Some(last_segment) => { |
117 | | - if last_segment.ident.name != Symbol::intern("cfg_match") { |
118 | | - return Err("Expected cfg_match"); |
119 | | - } |
120 | | - } |
121 | | - None => { |
122 | | - return Err("Expected cfg_match"); |
123 | | - } |
124 | | - }; |
| 88 | + if !is_macro_name(mac, "cfg_match") { |
| 89 | + return Err("Expected cfg_match"); |
| 90 | + } |
125 | 91 |
|
126 | 92 | let items = parse_cfg_match(self.psess, mac)?; |
127 | 93 | self.mods |
|
0 commit comments