@@ -210,14 +210,7 @@ pub fn register_plugins<'a>(
210
210
Ok ( ( krate, Lrc :: new ( lint_store) ) )
211
211
}
212
212
213
- fn configure_and_expand_inner < ' a > (
214
- sess : & ' a Session ,
215
- lint_store : & ' a LintStore ,
216
- mut krate : ast:: Crate ,
217
- crate_name : & str ,
218
- resolver_arenas : & ' a ResolverArenas < ' a > ,
219
- metadata_loader : & ' a MetadataLoaderDyn ,
220
- ) -> Result < ( ast:: Crate , Resolver < ' a > ) > {
213
+ fn pre_expansion_lint ( sess : & Session , lint_store : & LintStore , krate : & ast:: Crate ) {
221
214
sess. time ( "pre_AST_expansion_lint_checks" , || {
222
215
rustc_lint:: check_ast_crate (
223
216
sess,
@@ -228,6 +221,17 @@ fn configure_and_expand_inner<'a>(
228
221
rustc_lint:: BuiltinCombinedPreExpansionLintPass :: new ( ) ,
229
222
) ;
230
223
} ) ;
224
+ }
225
+
226
+ fn configure_and_expand_inner < ' a > (
227
+ sess : & ' a Session ,
228
+ lint_store : & ' a LintStore ,
229
+ mut krate : ast:: Crate ,
230
+ crate_name : & str ,
231
+ resolver_arenas : & ' a ResolverArenas < ' a > ,
232
+ metadata_loader : & ' a MetadataLoaderDyn ,
233
+ ) -> Result < ( ast:: Crate , Resolver < ' a > ) > {
234
+ pre_expansion_lint ( sess, lint_store, & krate) ;
231
235
232
236
let mut resolver = Resolver :: new ( sess, & krate, crate_name, metadata_loader, & resolver_arenas) ;
233
237
rustc_builtin_macros:: register_builtin_macros ( & mut resolver, sess. edition ( ) ) ;
@@ -291,7 +295,8 @@ fn configure_and_expand_inner<'a>(
291
295
..rustc_expand:: expand:: ExpansionConfig :: default ( crate_name. to_string ( ) )
292
296
} ;
293
297
294
- let mut ecx = ExtCtxt :: new ( & sess. parse_sess , cfg, & mut resolver) ;
298
+ let extern_mod_loaded = |k : & ast:: Crate | pre_expansion_lint ( sess, lint_store, k) ;
299
+ let mut ecx = ExtCtxt :: new ( & sess. parse_sess , cfg, & mut resolver, Some ( & extern_mod_loaded) ) ;
295
300
296
301
// Expand macros now!
297
302
let krate = sess. time ( "expand_crate" , || ecx. monotonic_expander ( ) . expand_crate ( krate) ) ;
0 commit comments