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} ;
@@ -550,7 +548,7 @@ impl MacroKind {
550
548
/// An enum representing the different kinds of syntax extensions.
551
549
pub enum SyntaxExtension {
552
550
/// A token-based function-like macro.
553
- ProcMacro {
551
+ Bang {
554
552
/// An expander with signature TokenStream -> TokenStream.
555
553
expander : Box < dyn ProcMacro + sync:: Sync + sync:: Send > ,
556
554
/// Whitelist of unstable features that are treated as stable inside this macro.
@@ -560,7 +558,7 @@ pub enum SyntaxExtension {
560
558
} ,
561
559
562
560
/// An AST-based function-like macro.
563
- NormalTT {
561
+ LegacyBang {
564
562
/// An expander with signature TokenStream -> AST.
565
563
expander : Box < dyn TTMacroExpander + sync:: Sync + sync:: Send > ,
566
564
/// Some info about the macro's definition point.
@@ -580,7 +578,7 @@ pub enum SyntaxExtension {
580
578
} ,
581
579
582
580
/// A token-based attribute macro.
583
- AttrProcMacro (
581
+ Attr (
584
582
/// An expander with signature (TokenStream, TokenStream) -> TokenStream.
585
583
/// The first TokenSteam is the attribute itself, the second is the annotated item.
586
584
/// The produced TokenSteam replaces the input TokenSteam.
@@ -590,7 +588,7 @@ pub enum SyntaxExtension {
590
588
) ,
591
589
592
590
/// An AST-based attribute macro.
593
- MultiModifier (
591
+ LegacyAttr (
594
592
/// An expander with signature (AST, AST) -> AST.
595
593
/// The first AST fragment is the attribute itself, the second is the annotated item.
596
594
/// The produced AST fragment replaces the input AST fragment.
@@ -605,7 +603,7 @@ pub enum SyntaxExtension {
605
603
} ,
606
604
607
605
/// A token-based derive macro.
608
- ProcMacroDerive (
606
+ Derive (
609
607
/// An expander with signature TokenStream -> TokenStream (not yet).
610
608
/// The produced TokenSteam is appended to the input TokenSteam.
611
609
Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -616,7 +614,7 @@ pub enum SyntaxExtension {
616
614
) ,
617
615
618
616
/// An AST-based derive macro.
619
- BuiltinDerive (
617
+ LegacyDerive (
620
618
/// An expander with signature AST -> AST.
621
619
/// The produced AST fragment is appended to the input AST fragment.
622
620
Box < dyn MultiItemModifier + sync:: Sync + sync:: Send > ,
@@ -627,41 +625,38 @@ impl SyntaxExtension {
627
625
/// Returns which kind of macro calls this syntax extension.
628
626
pub fn kind ( & self ) -> MacroKind {
629
627
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 ,
640
635
}
641
636
}
642
637
643
638
pub fn default_transparency ( & self ) -> Transparency {
644
639
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 ( ..) |
649
644
SyntaxExtension :: NonMacroAttr { .. } => Transparency :: Opaque ,
650
- SyntaxExtension :: MultiModifier ( ..) |
651
- SyntaxExtension :: BuiltinDerive ( ..) => Transparency :: SemiTransparent ,
645
+ SyntaxExtension :: LegacyAttr ( ..) |
646
+ SyntaxExtension :: LegacyDerive ( ..) => Transparency :: SemiTransparent ,
652
647
}
653
648
}
654
649
655
650
pub fn edition ( & self , default_edition : Edition ) -> Edition {
656
651
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,
661
656
// Unstable legacy stuff
662
657
SyntaxExtension :: NonMacroAttr { .. } |
663
- SyntaxExtension :: MultiModifier ( ..) |
664
- SyntaxExtension :: BuiltinDerive ( ..) => default_edition,
658
+ SyntaxExtension :: LegacyAttr ( ..) |
659
+ SyntaxExtension :: LegacyDerive ( ..) => default_edition,
665
660
}
666
661
}
667
662
}
0 commit comments