|
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