@@ -21,7 +21,6 @@ use rustc_errors::{struct_span_err, Diagnostic, DiagnosticBuilder, FatalError, H
2121use rustc_span:: source_map:: DUMMY_SP ;
2222use rustc_span:: Span ;
2323use std:: collections:: hash_map:: Entry ;
24- use std:: convert:: TryFrom ;
2524use std:: hash:: { Hash , Hasher } ;
2625use std:: mem;
2726use std:: num:: NonZeroU32 ;
@@ -150,37 +149,30 @@ impl<'a, 'tcx, Q: QueryDescription<'tcx>> JobOwner<'a, 'tcx, Q> {
150149 }
151150
152151 // Create the id of the job we're waiting for
153- let id = QueryJobId {
154- job : job. id ,
155- shard : u16:: try_from ( shard) . unwrap ( ) ,
156- kind : Q :: dep_kind ( ) ,
157- } ;
152+ let id = QueryJobId :: new ( job. id , shard, Q :: dep_kind ( ) ) ;
158153
159154 job. latch ( id)
160155 }
161156 QueryResult :: Poisoned => FatalError . raise ( ) ,
162157 }
163158 }
164159 Entry :: Vacant ( entry) => {
165- let jobs = & mut lock. jobs ;
166-
167160 // No job entry for this query. Return a new one to be started later.
168- return tls:: with_related_context ( tcx, |icx| {
169- // Generate an id unique within this shard.
170- let id = jobs. checked_add ( 1 ) . unwrap ( ) ;
171- * jobs = id;
172- let id = QueryShardJobId ( NonZeroU32 :: new ( id) . unwrap ( ) ) ;
173-
174- let global_id = QueryJobId {
175- job : id,
176- shard : u16:: try_from ( shard) . unwrap ( ) ,
177- kind : Q :: dep_kind ( ) ,
178- } ;
179- let job = QueryJob :: new ( id, span, icx. query ) ;
180- let owner = JobOwner { cache, id : global_id, key : ( * key) . clone ( ) } ;
181- entry. insert ( QueryResult :: Started ( job) ) ;
182- TryGetJob :: NotYetStarted ( owner)
183- } ) ;
161+
162+ // Generate an id unique within this shard.
163+ let id = lock. jobs . checked_add ( 1 ) . unwrap ( ) ;
164+ lock. jobs = id;
165+ let id = QueryShardJobId ( NonZeroU32 :: new ( id) . unwrap ( ) ) ;
166+
167+ let global_id = QueryJobId :: new ( id, shard, Q :: dep_kind ( ) ) ;
168+
169+ let job =
170+ tls:: with_related_context ( tcx, |icx| QueryJob :: new ( id, span, icx. query ) ) ;
171+
172+ entry. insert ( QueryResult :: Started ( job) ) ;
173+
174+ let owner = JobOwner { cache, id : global_id, key : ( * key) . clone ( ) } ;
175+ return TryGetJob :: NotYetStarted ( owner) ;
184176 }
185177 } ;
186178 mem:: drop ( lock_guard) ;
0 commit comments