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 ,
@@ -499,9 +499,28 @@ macro_rules! define_queries {
499
499
}
500
500
}
501
501
502
+ use crate :: { ExternProviders , OnDiskCache , Providers } ;
503
+
504
+ impl < ' tcx > Queries < ' tcx > {
505
+ pub fn new (
506
+ local_providers : Providers ,
507
+ extern_providers : ExternProviders ,
508
+ on_disk_cache : Option < OnDiskCache < ' tcx > > ,
509
+ ) -> Self {
510
+ Queries {
511
+ local_providers : Box :: new ( local_providers) ,
512
+ extern_providers : Box :: new ( extern_providers) ,
513
+ on_disk_cache,
514
+ jobs : AtomicU64 :: new ( 1 ) ,
515
+ ..Queries :: default ( )
516
+ }
517
+ }
518
+ }
519
+
502
520
macro_rules! define_queries_struct {
503
521
(
504
522
input: ( $( ( [ $( $modifiers: tt) * ] [ $( $attr: tt) * ] [ $name: ident] ) ) * ) ) => {
523
+ #[ derive( Default ) ]
505
524
pub struct Queries <' tcx> {
506
525
local_providers: Box <Providers >,
507
526
extern_providers: Box <ExternProviders >,
@@ -514,20 +533,6 @@ macro_rules! define_queries_struct {
514
533
}
515
534
516
535
impl <' tcx> Queries <' tcx> {
517
- pub fn new(
518
- local_providers: Providers ,
519
- extern_providers: ExternProviders ,
520
- on_disk_cache: Option <OnDiskCache <' tcx>>,
521
- ) -> Self {
522
- Queries {
523
- local_providers: Box :: new( local_providers) ,
524
- extern_providers: Box :: new( extern_providers) ,
525
- on_disk_cache,
526
- jobs: AtomicU64 :: new( 1 ) ,
527
- $( $name: Default :: default ( ) ) ,*
528
- }
529
- }
530
-
531
536
pub ( crate ) fn try_collect_active_jobs(
532
537
& ' tcx self ,
533
538
tcx: TyCtxt <' tcx>,
0 commit comments