@@ -18,6 +18,7 @@ use rustc_lint::{unerased_lint_store, BufferedEarlyLint, EarlyCheckNode, LintSto
18
18
use rustc_metadata:: creader:: CStore ;
19
19
use rustc_middle:: arena:: Arena ;
20
20
use rustc_middle:: dep_graph:: DepGraph ;
21
+ use rustc_middle:: hooks;
21
22
use rustc_middle:: query:: { ExternProviders , Providers } ;
22
23
use rustc_middle:: ty:: { self , GlobalCtxt , RegisteredTools , TyCtxt } ;
23
24
use rustc_mir_build as mir_build;
@@ -645,15 +646,16 @@ fn output_filenames(tcx: TyCtxt<'_>, (): ()) -> Arc<OutputFilenames> {
645
646
outputs. into ( )
646
647
}
647
648
648
- pub static DEFAULT_QUERY_PROVIDERS : LazyLock < Providers > = LazyLock :: new ( || {
649
+ pub static DEFAULT_QUERY_PROVIDERS : LazyLock < ( Providers , hooks :: Providers ) > = LazyLock :: new ( || {
649
650
let providers = & mut Providers :: default ( ) ;
651
+ let hooks = & mut hooks:: Providers :: default ( ) ;
650
652
providers. analysis = analysis;
651
653
providers. hir_crate = rustc_ast_lowering:: lower_to_hir;
652
654
providers. output_filenames = output_filenames;
653
655
providers. resolver_for_lowering = resolver_for_lowering;
654
656
providers. early_lint_checks = early_lint_checks;
655
657
proc_macro_decls:: provide ( providers) ;
656
- rustc_const_eval:: provide ( providers) ;
658
+ rustc_const_eval:: provide ( providers, hooks ) ;
657
659
rustc_middle:: hir:: provide ( providers) ;
658
660
mir_borrowck:: provide ( providers) ;
659
661
mir_build:: provide ( providers) ;
@@ -672,7 +674,7 @@ pub static DEFAULT_QUERY_PROVIDERS: LazyLock<Providers> = LazyLock::new(|| {
672
674
rustc_lint:: provide ( providers) ;
673
675
rustc_symbol_mangling:: provide ( providers) ;
674
676
rustc_codegen_ssa:: provide ( providers) ;
675
- * providers
677
+ ( * providers, * hooks )
676
678
} ) ;
677
679
678
680
pub static DEFAULT_EXTERN_QUERY_PROVIDERS : LazyLock < ExternProviders > = LazyLock :: new ( || {
@@ -702,8 +704,8 @@ pub fn create_global_ctxt<'tcx>(
702
704
let query_result_on_disk_cache = rustc_incremental:: load_query_result_cache ( sess) ;
703
705
704
706
let codegen_backend = compiler. codegen_backend ( ) ;
705
- let mut local_providers = * DEFAULT_QUERY_PROVIDERS ;
706
- codegen_backend. provide ( & mut local_providers) ;
707
+ let ( mut local_providers, mut hooks ) = * DEFAULT_QUERY_PROVIDERS ;
708
+ codegen_backend. provide ( & mut local_providers, & mut hooks ) ;
707
709
708
710
let mut extern_providers = * DEFAULT_EXTERN_QUERY_PROVIDERS ;
709
711
codegen_backend. provide_extern ( & mut extern_providers) ;
@@ -732,6 +734,7 @@ pub fn create_global_ctxt<'tcx>(
732
734
query_result_on_disk_cache,
733
735
incremental,
734
736
) ,
737
+ hooks,
735
738
)
736
739
} )
737
740
} )
0 commit comments