5
5
use crate :: keys:: Key ;
6
6
use crate :: { on_disk_cache, Queries } ;
7
7
use rustc_data_structures:: stable_hasher:: { HashStable , StableHasher } ;
8
- use rustc_data_structures:: sync:: Lock ;
8
+ use rustc_data_structures:: sync:: { AtomicU64 , Lock } ;
9
9
use rustc_errors:: { Diagnostic , Handler } ;
10
10
use rustc_middle:: dep_graph:: {
11
11
self , DepKind , DepKindStruct , DepNode , DepNodeIndex , SerializedDepNodeIndex ,
@@ -501,9 +501,28 @@ macro_rules! define_queries {
501
501
}
502
502
}
503
503
504
+ use crate :: { ExternProviders , OnDiskCache , Providers } ;
505
+
506
+ impl < ' tcx > Queries < ' tcx > {
507
+ pub fn new (
508
+ local_providers : Providers ,
509
+ extern_providers : ExternProviders ,
510
+ on_disk_cache : Option < OnDiskCache < ' tcx > > ,
511
+ ) -> Self {
512
+ Queries {
513
+ local_providers : Box :: new ( local_providers) ,
514
+ extern_providers : Box :: new ( extern_providers) ,
515
+ on_disk_cache,
516
+ jobs : AtomicU64 :: new ( 1 ) ,
517
+ ..Queries :: default ( )
518
+ }
519
+ }
520
+ }
521
+
504
522
macro_rules! define_queries_struct {
505
523
(
506
524
input: ( $( ( [ $( $modifiers: tt) * ] [ $( $attr: tt) * ] [ $name: ident] ) ) * ) ) => {
525
+ #[ derive( Default ) ]
507
526
pub struct Queries <' tcx> {
508
527
local_providers: Box <Providers >,
509
528
extern_providers: Box <ExternProviders >,
@@ -516,20 +535,6 @@ macro_rules! define_queries_struct {
516
535
}
517
536
518
537
impl <' tcx> Queries <' tcx> {
519
- pub fn new(
520
- local_providers: Providers ,
521
- extern_providers: ExternProviders ,
522
- on_disk_cache: Option <OnDiskCache <' tcx>>,
523
- ) -> Self {
524
- Queries {
525
- local_providers: Box :: new( local_providers) ,
526
- extern_providers: Box :: new( extern_providers) ,
527
- on_disk_cache,
528
- jobs: AtomicU64 :: new( 1 ) ,
529
- $( $name: Default :: default ( ) ) ,*
530
- }
531
- }
532
-
533
538
pub ( crate ) fn try_collect_active_jobs(
534
539
& ' tcx self ,
535
540
tcx: TyCtxt <' tcx>,
0 commit comments