diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-07 00:37:47 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-10 21:33:31 +0300 |
| commit | 8edbbacbcac3fe88995f02e08789ca458667b6b4 (patch) | |
| tree | b8b62be192a1d4376e021199263a9b1846e03c4a /src/libsyntax/ext/base.rs | |
| parent | edb925a91f4fafb9056d181dd620937992ad6c1b (diff) | |
| download | rust-8edbbacbcac3fe88995f02e08789ca458667b6b4.tar.gz rust-8edbbacbcac3fe88995f02e08789ca458667b6b4.zip | |
syntax: Remove `SyntaxExtension::DeclMacro`
It's a less powerful duplicate of `SyntaxExtension::NormalTT`
Diffstat (limited to 'src/libsyntax/ext/base.rs')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 4a357b0f312..7ac92224f76 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -579,6 +579,7 @@ pub enum SyntaxExtension { NormalTT { expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>, def_info: Option<(ast::NodeId, Span)>, + transparency: Transparency, /// Whether the contents of the macro can /// directly use `#[unstable]` things. /// @@ -605,21 +606,12 @@ pub enum SyntaxExtension { /// An attribute-like procedural macro that derives a builtin trait. BuiltinDerive(Box<dyn MultiItemModifier + sync::Sync + sync::Send>), - - /// A declarative macro, e.g., `macro m() {}`. - DeclMacro { - expander: Box<dyn TTMacroExpander + sync::Sync + sync::Send>, - def_info: Option<(ast::NodeId, Span)>, - is_transparent: bool, - edition: Edition, - } } impl SyntaxExtension { /// Returns which kind of macro calls this syntax extension. pub fn kind(&self) -> MacroKind { match *self { - SyntaxExtension::DeclMacro { .. } | SyntaxExtension::NormalTT { .. } | SyntaxExtension::ProcMacro { .. } => MacroKind::Bang, @@ -635,19 +627,19 @@ impl SyntaxExtension { pub fn default_transparency(&self) -> Transparency { match *self { + SyntaxExtension::NormalTT { transparency, .. } => transparency, SyntaxExtension::ProcMacro { .. } | SyntaxExtension::AttrProcMacro(..) | SyntaxExtension::ProcMacroDerive(..) | - SyntaxExtension::DeclMacro { is_transparent: false, .. } => Transparency::Opaque, - SyntaxExtension::DeclMacro { is_transparent: true, .. } => Transparency::Transparent, - _ => Transparency::SemiTransparent, + SyntaxExtension::NonMacroAttr { .. } => Transparency::Opaque, + SyntaxExtension::MultiModifier(..) | + SyntaxExtension::BuiltinDerive(..) => Transparency::SemiTransparent, } } pub fn edition(&self, default_edition: Edition) -> Edition { match *self { SyntaxExtension::NormalTT { edition, .. } | - SyntaxExtension::DeclMacro { edition, .. } | SyntaxExtension::ProcMacro { edition, .. } | SyntaxExtension::AttrProcMacro(.., edition) | SyntaxExtension::ProcMacroDerive(.., edition) => edition, |
