@@ -4,8 +4,9 @@ use rustc::lint::{EarlyLintPassObject, LateLintPassObject, LintId, Lint};
4
4
use rustc:: session:: Session ;
5
5
use rustc:: util:: nodemap:: FxHashMap ;
6
6
7
- use syntax:: ext:: base:: { SyntaxExtension , NamedSyntaxExtension , NormalTT , IdentTT } ;
7
+ use syntax:: ext:: base:: { SyntaxExtension , NamedSyntaxExtension } ;
8
8
use syntax:: ext:: base:: MacroExpanderFn ;
9
+ use syntax:: ext:: hygiene:: Transparency ;
9
10
use syntax:: symbol:: { Symbol , sym} ;
10
11
use syntax:: ast;
11
12
use syntax:: feature_gate:: AttributeType ;
@@ -84,47 +85,26 @@ impl<'a> Registry<'a> {
84
85
/// Register a syntax extension of any kind.
85
86
///
86
87
/// This is the most general hook into `libsyntax`'s expansion behavior.
87
- pub fn register_syntax_extension ( & mut self , name : ast:: Name , extension : SyntaxExtension ) {
88
+ pub fn register_syntax_extension ( & mut self , name : ast:: Name , mut extension : SyntaxExtension ) {
88
89
if name == sym:: macro_rules {
89
90
panic ! ( "user-defined macros may not be named `macro_rules`" ) ;
90
91
}
91
- self . syntax_exts . push ( ( name, match extension {
92
- NormalTT {
93
- expander,
94
- def_info : _,
95
- allow_internal_unstable,
96
- allow_internal_unsafe,
97
- local_inner_macros,
98
- unstable_feature,
99
- edition,
100
- } => {
101
- let nid = ast:: CRATE_NODE_ID ;
102
- NormalTT {
103
- expander,
104
- def_info : Some ( ( nid, self . krate_span ) ) ,
105
- allow_internal_unstable,
106
- allow_internal_unsafe,
107
- local_inner_macros,
108
- unstable_feature,
109
- edition,
110
- }
111
- }
112
- IdentTT { expander, span : _, allow_internal_unstable } => {
113
- IdentTT { expander, span : Some ( self . krate_span ) , allow_internal_unstable }
114
- }
115
- _ => extension,
116
- } ) ) ;
92
+ if let SyntaxExtension :: LegacyBang { def_info : ref mut def_info @ None , .. } = extension {
93
+ * def_info = Some ( ( ast:: CRATE_NODE_ID , self . krate_span ) ) ;
94
+ }
95
+ self . syntax_exts . push ( ( name, extension) ) ;
117
96
}
118
97
119
98
/// Register a macro of the usual kind.
120
99
///
121
100
/// This is a convenience wrapper for `register_syntax_extension`.
122
- /// It builds for you a `NormalTT ` that calls `expander`,
101
+ /// It builds for you a `SyntaxExtension::LegacyBang ` that calls `expander`,
123
102
/// and also takes care of interning the macro's name.
124
103
pub fn register_macro ( & mut self , name : & str , expander : MacroExpanderFn ) {
125
- self . register_syntax_extension ( Symbol :: intern ( name) , NormalTT {
104
+ self . register_syntax_extension ( Symbol :: intern ( name) , SyntaxExtension :: LegacyBang {
126
105
expander : Box :: new ( expander) ,
127
106
def_info : None ,
107
+ transparency : Transparency :: SemiTransparent ,
128
108
allow_internal_unstable : None ,
129
109
allow_internal_unsafe : false ,
130
110
local_inner_macros : false ,
0 commit comments