@@ -210,14 +210,7 @@ pub fn register_plugins<'a>(
210210 Ok ( ( krate, Lrc :: new ( lint_store) ) )
211211}
212212
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 ) {
221214 sess. time ( "pre_AST_expansion_lint_checks" , || {
222215 rustc_lint:: check_ast_crate (
223216 sess,
@@ -228,6 +221,17 @@ fn configure_and_expand_inner<'a>(
228221 rustc_lint:: BuiltinCombinedPreExpansionLintPass :: new ( ) ,
229222 ) ;
230223 } ) ;
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) ;
231235
232236 let mut resolver = Resolver :: new ( sess, & krate, crate_name, metadata_loader, & resolver_arenas) ;
233237 rustc_builtin_macros:: register_builtin_macros ( & mut resolver, sess. edition ( ) ) ;
@@ -291,7 +295,8 @@ fn configure_and_expand_inner<'a>(
291295 ..rustc_expand:: expand:: ExpansionConfig :: default ( crate_name. to_string ( ) )
292296 } ;
293297
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) ) ;
295300
296301 // Expand macros now!
297302 let krate = sess. time ( "expand_crate" , || ecx. monotonic_expander ( ) . expand_crate ( krate) ) ;
0 commit comments