@@ -21,7 +21,6 @@ use rustc_errors::{struct_span_err, Diagnostic, DiagnosticBuilder, FatalError, H
21
21
use rustc_span:: source_map:: DUMMY_SP ;
22
22
use rustc_span:: Span ;
23
23
use std:: collections:: hash_map:: Entry ;
24
- use std:: convert:: TryFrom ;
25
24
use std:: hash:: { Hash , Hasher } ;
26
25
use std:: mem;
27
26
use std:: num:: NonZeroU32 ;
@@ -150,37 +149,30 @@ impl<'a, 'tcx, Q: QueryDescription<'tcx>> JobOwner<'a, 'tcx, Q> {
150
149
}
151
150
152
151
// 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 ( ) ) ;
158
153
159
154
job. latch ( id)
160
155
}
161
156
QueryResult :: Poisoned => FatalError . raise ( ) ,
162
157
}
163
158
}
164
159
Entry :: Vacant ( entry) => {
165
- let jobs = & mut lock. jobs ;
166
-
167
160
// 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) ;
184
176
}
185
177
} ;
186
178
mem:: drop ( lock_guard) ;
0 commit comments