@@ -3,7 +3,6 @@ use crate::passes::{self, BoxedResolver, QueryContext};
33
44use rustc_ast as ast;
55use rustc_codegen_ssa:: traits:: CodegenBackend ;
6- use rustc_data_structures:: steal:: Steal ;
76use rustc_data_structures:: svh:: Svh ;
87use rustc_data_structures:: sync:: { Lrc , OnceCell , WorkerLocal } ;
98use rustc_errors:: ErrorReported ;
@@ -80,7 +79,7 @@ pub struct Queries<'tcx> {
8079 parse : Query < ast:: Crate > ,
8180 crate_name : Query < String > ,
8281 register_plugins : Query < ( ast:: Crate , Lrc < LintStore > ) > ,
83- expansion : Query < ( ast:: Crate , Steal < Rc < RefCell < BoxedResolver > > > , Lrc < LintStore > ) > ,
82+ expansion : Query < ( ast:: Crate , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > ,
8483 dep_graph : Query < DepGraph > ,
8584 prepare_outputs : Query < OutputFilenames > ,
8685 global_ctxt : Query < QueryContext < ' tcx > > ,
@@ -168,7 +167,7 @@ impl<'tcx> Queries<'tcx> {
168167
169168 pub fn expansion (
170169 & self ,
171- ) -> Result < & Query < ( ast:: Crate , Steal < Rc < RefCell < BoxedResolver > > > , Lrc < LintStore > ) > > {
170+ ) -> Result < & Query < ( ast:: Crate , Rc < RefCell < BoxedResolver > > , Lrc < LintStore > ) > > {
172171 tracing:: trace!( "expansion" ) ;
173172 self . expansion . compute ( || {
174173 let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
@@ -184,7 +183,7 @@ impl<'tcx> Queries<'tcx> {
184183 let krate = resolver. access ( |resolver| {
185184 passes:: configure_and_expand ( & sess, & lint_store, krate, & crate_name, resolver)
186185 } ) ?;
187- Ok ( ( krate, Steal :: new ( Rc :: new ( RefCell :: new ( resolver) ) ) , lint_store) )
186+ Ok ( ( krate, Rc :: new ( RefCell :: new ( resolver) ) , lint_store) )
188187 } )
189188 }
190189
@@ -206,14 +205,13 @@ impl<'tcx> Queries<'tcx> {
206205
207206 pub fn prepare_outputs ( & self ) -> Result < & Query < OutputFilenames > > {
208207 self . prepare_outputs . compute ( || {
209- let expansion_result = self . expansion ( ) ?;
210- let ( krate, boxed_resolver, _) = & * expansion_result. peek ( ) ;
208+ let ( krate, boxed_resolver, _) = & * self . expansion ( ) ?. peek ( ) ;
211209 let crate_name = self . crate_name ( ) ?. peek ( ) ;
212210 passes:: prepare_outputs (
213211 self . session ( ) ,
214212 self . compiler ,
215- & krate,
216- & boxed_resolver,
213+ krate,
214+ & * boxed_resolver,
217215 & crate_name,
218216 )
219217 } )
@@ -223,14 +221,14 @@ impl<'tcx> Queries<'tcx> {
223221 self . global_ctxt . compute ( || {
224222 let crate_name = self . crate_name ( ) ?. peek ( ) . clone ( ) ;
225223 let outputs = self . prepare_outputs ( ) ?. peek ( ) . clone ( ) ;
226- let ( ref krate, ref resolver, ref lint_store) = & * self . expansion ( ) ?. peek ( ) ;
227224 let dep_graph = self . dep_graph ( ) ?. peek ( ) . clone ( ) ;
225+ let ( krate, resolver, lint_store) = self . expansion ( ) ?. take ( ) ;
228226 Ok ( passes:: create_global_ctxt (
229227 self . compiler ,
230- lint_store. clone ( ) ,
228+ lint_store,
231229 krate,
232230 dep_graph,
233- resolver. steal ( ) ,
231+ resolver,
234232 outputs,
235233 & crate_name,
236234 & self . queries ,
0 commit comments