1- pub use SyntaxExtension :: * ;
2-
31use crate :: ast:: { self , Attribute , Name , PatKind } ;
42use crate :: attr:: HasAttrs ;
53use crate :: source_map:: { SourceMap , Spanned , respan} ;
@@ -553,7 +551,7 @@ impl MacroKind {
553551/// An enum representing the different kinds of syntax extensions.
554552pub enum SyntaxExtension {
555553 /// A token-based function-like macro.
556- ProcMacro {
554+ Bang {
557555 /// An expander with signature TokenStream -> TokenStream.
558556 expander : Box < dyn ProcMacro + sync:: Sync + sync:: Send > ,
559557 /// Whitelist of unstable features that are treated as stable inside this macro.
@@ -563,7 +561,7 @@ pub enum SyntaxExtension {
563561 } ,
564562
565563 /// An AST-based function-like macro.
566- NormalTT {
564+ LegacyBang {
567565 /// An expander with signature TokenStream -> AST.
568566 expander : Box < dyn TTMacroExpander + sync:: Sync + sync:: Send > ,
569567 /// Some info about the macro's definition point.
@@ -583,7 +581,7 @@ pub enum SyntaxExtension {
583581 } ,
584582
585583 /// A token-based attribute macro.
586- AttrProcMacro (
584+ Attr (
587585 /// An expander with signature (TokenStream, TokenStream) -> TokenStream.
588586 /// The first TokenSteam is the attribute itself, the second is the annotated item.
589587 /// The produced TokenSteam replaces the input TokenSteam.
@@ -593,7 +591,7 @@ pub enum SyntaxExtension {
593591 ) ,
594592
595593 /// An AST-based attribute macro.
596- MultiModifier (
594+ LegacyAttr (
597595 /// An expander with signature (AST, AST) -> AST.
598596 /// The first AST fragment is the attribute itself, the second is the annotated item.
599597 /// The produced AST fragment replaces the input AST fragment.
@@ -608,7 +606,7 @@ pub enum SyntaxExtension {
608606 } ,
609607
610608 /// A token-based derive macro.
611- ProcMacroDerive (
609+ Derive (
612610 /// An expander with signature TokenStream -> TokenStream (not yet).
613611 /// The produced TokenSteam is appended to the input TokenSteam.
614612 Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -619,7 +617,7 @@ pub enum SyntaxExtension {
619617 ) ,
620618
621619 /// An AST-based derive macro.
622- BuiltinDerive (
620+ LegacyDerive (
623621 /// An expander with signature AST -> AST.
624622 /// The produced AST fragment is appended to the input AST fragment.
625623 Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -630,41 +628,38 @@ impl SyntaxExtension {
630628 /// Returns which kind of macro calls this syntax extension.
631629 pub fn kind ( & self ) -> MacroKind {
632630 match * self {
633- SyntaxExtension :: NormalTT { .. } |
634- SyntaxExtension :: ProcMacro { .. } =>
635- MacroKind :: Bang ,
636- SyntaxExtension :: NonMacroAttr { .. } |
637- SyntaxExtension :: MultiModifier ( ..) |
638- SyntaxExtension :: AttrProcMacro ( ..) =>
639- MacroKind :: Attr ,
640- SyntaxExtension :: ProcMacroDerive ( ..) |
641- SyntaxExtension :: BuiltinDerive ( ..) =>
642- MacroKind :: Derive ,
631+ SyntaxExtension :: Bang { .. } |
632+ SyntaxExtension :: LegacyBang { .. } => MacroKind :: Bang ,
633+ SyntaxExtension :: Attr ( ..) |
634+ SyntaxExtension :: LegacyAttr ( ..) |
635+ SyntaxExtension :: NonMacroAttr { .. } => MacroKind :: Attr ,
636+ SyntaxExtension :: Derive ( ..) |
637+ SyntaxExtension :: LegacyDerive ( ..) => MacroKind :: Derive ,
643638 }
644639 }
645640
646641 pub fn default_transparency ( & self ) -> Transparency {
647642 match * self {
648- SyntaxExtension :: NormalTT { transparency, .. } => transparency,
649- SyntaxExtension :: ProcMacro { .. } |
650- SyntaxExtension :: AttrProcMacro ( ..) |
651- SyntaxExtension :: ProcMacroDerive ( ..) |
643+ SyntaxExtension :: LegacyBang { transparency, .. } => transparency,
644+ SyntaxExtension :: Bang { .. } |
645+ SyntaxExtension :: Attr ( ..) |
646+ SyntaxExtension :: Derive ( ..) |
652647 SyntaxExtension :: NonMacroAttr { .. } => Transparency :: Opaque ,
653- SyntaxExtension :: MultiModifier ( ..) |
654- SyntaxExtension :: BuiltinDerive ( ..) => Transparency :: SemiTransparent ,
648+ SyntaxExtension :: LegacyAttr ( ..) |
649+ SyntaxExtension :: LegacyDerive ( ..) => Transparency :: SemiTransparent ,
655650 }
656651 }
657652
658653 pub fn edition ( & self , default_edition : Edition ) -> Edition {
659654 match * self {
660- SyntaxExtension :: NormalTT { edition, .. } |
661- SyntaxExtension :: ProcMacro { edition, .. } |
662- SyntaxExtension :: AttrProcMacro ( .., edition) |
663- SyntaxExtension :: ProcMacroDerive ( .., edition) => edition,
655+ SyntaxExtension :: Bang { edition, .. } |
656+ SyntaxExtension :: LegacyBang { edition, .. } |
657+ SyntaxExtension :: Attr ( .., edition) |
658+ SyntaxExtension :: Derive ( .., edition) => edition,
664659 // Unstable legacy stuff
665660 SyntaxExtension :: NonMacroAttr { .. } |
666- SyntaxExtension :: MultiModifier ( ..) |
667- SyntaxExtension :: BuiltinDerive ( ..) => default_edition,
661+ SyntaxExtension :: LegacyAttr ( ..) |
662+ SyntaxExtension :: LegacyDerive ( ..) => default_edition,
668663 }
669664 }
670665}
0 commit comments