1- pub use SyntaxExtension :: * ;
2-
31use crate :: ast:: { self , Attribute , Name , PatKind } ;
42use crate :: attr:: HasAttrs ;
53use crate :: source_map:: { SourceMap , Spanned , respan} ;
@@ -550,7 +548,7 @@ impl MacroKind {
550548/// An enum representing the different kinds of syntax extensions.
551549pub enum SyntaxExtension {
552550 /// A token-based function-like macro.
553- ProcMacro {
551+ Bang {
554552 /// An expander with signature TokenStream -> TokenStream.
555553 expander : Box < dyn ProcMacro + sync:: Sync + sync:: Send > ,
556554 /// Whitelist of unstable features that are treated as stable inside this macro.
@@ -560,7 +558,7 @@ pub enum SyntaxExtension {
560558 } ,
561559
562560 /// An AST-based function-like macro.
563- NormalTT {
561+ LegacyBang {
564562 /// An expander with signature TokenStream -> AST.
565563 expander : Box < dyn TTMacroExpander + sync:: Sync + sync:: Send > ,
566564 /// Some info about the macro's definition point.
@@ -580,7 +578,7 @@ pub enum SyntaxExtension {
580578 } ,
581579
582580 /// A token-based attribute macro.
583- AttrProcMacro (
581+ Attr (
584582 /// An expander with signature (TokenStream, TokenStream) -> TokenStream.
585583 /// The first TokenSteam is the attribute itself, the second is the annotated item.
586584 /// The produced TokenSteam replaces the input TokenSteam.
@@ -590,7 +588,7 @@ pub enum SyntaxExtension {
590588 ) ,
591589
592590 /// An AST-based attribute macro.
593- MultiModifier (
591+ LegacyAttr (
594592 /// An expander with signature (AST, AST) -> AST.
595593 /// The first AST fragment is the attribute itself, the second is the annotated item.
596594 /// The produced AST fragment replaces the input AST fragment.
@@ -605,7 +603,7 @@ pub enum SyntaxExtension {
605603 } ,
606604
607605 /// A token-based derive macro.
608- ProcMacroDerive (
606+ Derive (
609607 /// An expander with signature TokenStream -> TokenStream (not yet).
610608 /// The produced TokenSteam is appended to the input TokenSteam.
611609 Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -616,7 +614,7 @@ pub enum SyntaxExtension {
616614 ) ,
617615
618616 /// An AST-based derive macro.
619- BuiltinDerive (
617+ LegacyDerive (
620618 /// An expander with signature AST -> AST.
621619 /// The produced AST fragment is appended to the input AST fragment.
622620 Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -627,41 +625,38 @@ impl SyntaxExtension {
627625 /// Returns which kind of macro calls this syntax extension.
628626 pub fn kind ( & self ) -> MacroKind {
629627 match * self {
630- SyntaxExtension :: NormalTT { .. } |
631- SyntaxExtension :: ProcMacro { .. } =>
632- MacroKind :: Bang ,
633- SyntaxExtension :: NonMacroAttr { .. } |
634- SyntaxExtension :: MultiModifier ( ..) |
635- SyntaxExtension :: AttrProcMacro ( ..) =>
636- MacroKind :: Attr ,
637- SyntaxExtension :: ProcMacroDerive ( ..) |
638- SyntaxExtension :: BuiltinDerive ( ..) =>
639- MacroKind :: Derive ,
628+ SyntaxExtension :: Bang { .. } |
629+ SyntaxExtension :: LegacyBang { .. } => MacroKind :: Bang ,
630+ SyntaxExtension :: Attr ( ..) |
631+ SyntaxExtension :: LegacyAttr ( ..) |
632+ SyntaxExtension :: NonMacroAttr { .. } => MacroKind :: Attr ,
633+ SyntaxExtension :: Derive ( ..) |
634+ SyntaxExtension :: LegacyDerive ( ..) => MacroKind :: Derive ,
640635 }
641636 }
642637
643638 pub fn default_transparency ( & self ) -> Transparency {
644639 match * self {
645- SyntaxExtension :: NormalTT { transparency, .. } => transparency,
646- SyntaxExtension :: ProcMacro { .. } |
647- SyntaxExtension :: AttrProcMacro ( ..) |
648- SyntaxExtension :: ProcMacroDerive ( ..) |
640+ SyntaxExtension :: LegacyBang { transparency, .. } => transparency,
641+ SyntaxExtension :: Bang { .. } |
642+ SyntaxExtension :: Attr ( ..) |
643+ SyntaxExtension :: Derive ( ..) |
649644 SyntaxExtension :: NonMacroAttr { .. } => Transparency :: Opaque ,
650- SyntaxExtension :: MultiModifier ( ..) |
651- SyntaxExtension :: BuiltinDerive ( ..) => Transparency :: SemiTransparent ,
645+ SyntaxExtension :: LegacyAttr ( ..) |
646+ SyntaxExtension :: LegacyDerive ( ..) => Transparency :: SemiTransparent ,
652647 }
653648 }
654649
655650 pub fn edition ( & self , default_edition : Edition ) -> Edition {
656651 match * self {
657- SyntaxExtension :: NormalTT { edition, .. } |
658- SyntaxExtension :: ProcMacro { edition, .. } |
659- SyntaxExtension :: AttrProcMacro ( .., edition) |
660- SyntaxExtension :: ProcMacroDerive ( .., edition) => edition,
652+ SyntaxExtension :: Bang { edition, .. } |
653+ SyntaxExtension :: LegacyBang { edition, .. } |
654+ SyntaxExtension :: Attr ( .., edition) |
655+ SyntaxExtension :: Derive ( .., edition) => edition,
661656 // Unstable legacy stuff
662657 SyntaxExtension :: NonMacroAttr { .. } |
663- SyntaxExtension :: MultiModifier ( ..) |
664- SyntaxExtension :: BuiltinDerive ( ..) => default_edition,
658+ SyntaxExtension :: LegacyAttr ( ..) |
659+ SyntaxExtension :: LegacyDerive ( ..) => default_edition,
665660 }
666661 }
667662}
0 commit comments