1
- pub use SyntaxExtension :: * ;
2
-
3
1
use crate :: ast:: { self , Attribute , Name , PatKind } ;
4
2
use crate :: attr:: HasAttrs ;
5
3
use crate :: source_map:: { SourceMap , Spanned , respan} ;
@@ -553,7 +551,7 @@ impl MacroKind {
553
551
/// An enum representing the different kinds of syntax extensions.
554
552
pub enum SyntaxExtension {
555
553
/// A token-based function-like macro.
556
- ProcMacro {
554
+ Bang {
557
555
/// An expander with signature TokenStream -> TokenStream.
558
556
expander : Box < dyn ProcMacro + sync:: Sync + sync:: Send > ,
559
557
/// Whitelist of unstable features that are treated as stable inside this macro.
@@ -563,7 +561,7 @@ pub enum SyntaxExtension {
563
561
} ,
564
562
565
563
/// An AST-based function-like macro.
566
- NormalTT {
564
+ LegacyBang {
567
565
/// An expander with signature TokenStream -> AST.
568
566
expander : Box < dyn TTMacroExpander + sync:: Sync + sync:: Send > ,
569
567
/// Some info about the macro's definition point.
@@ -583,7 +581,7 @@ pub enum SyntaxExtension {
583
581
} ,
584
582
585
583
/// A token-based attribute macro.
586
- AttrProcMacro (
584
+ Attr (
587
585
/// An expander with signature (TokenStream, TokenStream) -> TokenStream.
588
586
/// The first TokenSteam is the attribute itself, the second is the annotated item.
589
587
/// The produced TokenSteam replaces the input TokenSteam.
@@ -593,7 +591,7 @@ pub enum SyntaxExtension {
593
591
) ,
594
592
595
593
/// An AST-based attribute macro.
596
- MultiModifier (
594
+ LegacyAttr (
597
595
/// An expander with signature (AST, AST) -> AST.
598
596
/// The first AST fragment is the attribute itself, the second is the annotated item.
599
597
/// The produced AST fragment replaces the input AST fragment.
@@ -608,7 +606,7 @@ pub enum SyntaxExtension {
608
606
} ,
609
607
610
608
/// A token-based derive macro.
611
- ProcMacroDerive (
609
+ Derive (
612
610
/// An expander with signature TokenStream -> TokenStream (not yet).
613
611
/// The produced TokenSteam is appended to the input TokenSteam.
614
612
Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -619,7 +617,7 @@ pub enum SyntaxExtension {
619
617
) ,
620
618
621
619
/// An AST-based derive macro.
622
- BuiltinDerive (
620
+ LegacyDerive (
623
621
/// An expander with signature AST -> AST.
624
622
/// The produced AST fragment is appended to the input AST fragment.
625
623
Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -630,41 +628,38 @@ impl SyntaxExtension {
630
628
/// Returns which kind of macro calls this syntax extension.
631
629
pub fn kind ( & self ) -> MacroKind {
632
630
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 ,
643
638
}
644
639
}
645
640
646
641
pub fn default_transparency ( & self ) -> Transparency {
647
642
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 ( ..) |
652
647
SyntaxExtension :: NonMacroAttr { .. } => Transparency :: Opaque ,
653
- SyntaxExtension :: MultiModifier ( ..) |
654
- SyntaxExtension :: BuiltinDerive ( ..) => Transparency :: SemiTransparent ,
648
+ SyntaxExtension :: LegacyAttr ( ..) |
649
+ SyntaxExtension :: LegacyDerive ( ..) => Transparency :: SemiTransparent ,
655
650
}
656
651
}
657
652
658
653
pub fn edition ( & self , default_edition : Edition ) -> Edition {
659
654
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,
664
659
// Unstable legacy stuff
665
660
SyntaxExtension :: NonMacroAttr { .. } |
666
- SyntaxExtension :: MultiModifier ( ..) |
667
- SyntaxExtension :: BuiltinDerive ( ..) => default_edition,
661
+ SyntaxExtension :: LegacyAttr ( ..) |
662
+ SyntaxExtension :: LegacyDerive ( ..) => default_edition,
668
663
}
669
664
}
670
665
}
0 commit comments