Skip to content

Commit 6b1a789

Browse files
committed
remove some arguments that can also be fed at the caller side
1 parent 9e9c871 commit 6b1a789

File tree

2 files changed

+26
-34
lines changed

2 files changed

+26
-34
lines changed

compiler/rustc_interface/src/passes.rs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ use rustc_ast::{self as ast, visit};
1313
use rustc_borrowck as mir_borrowck;
1414
use rustc_codegen_ssa::traits::CodegenBackend;
1515
use rustc_data_structures::parallel;
16-
use rustc_data_structures::steal::Steal;
1716
use rustc_data_structures::sync::{Lrc, OnceCell, WorkerLocal};
1817
use rustc_errors::{ErrorGuaranteed, PResult};
1918
use rustc_expand::base::{ExtCtxt, LintStoreExpand, ResolverExpand};
@@ -31,7 +30,7 @@ use rustc_plugin_impl as plugin;
3130
use rustc_query_impl::{OnDiskCache, Queries as TcxQueries};
3231
use rustc_resolve::{Resolver, ResolverArenas};
3332
use rustc_session::config::{CrateType, Input, OutputFilenames, OutputType};
34-
use rustc_session::cstore::{MetadataLoader, MetadataLoaderDyn};
33+
use rustc_session::cstore::{MetadataLoader, MetadataLoaderDyn, Untracked};
3534
use rustc_session::output::filename_for_input;
3635
use rustc_session::search_paths::PathKind;
3736
use rustc_session::{Limit, Session};
@@ -775,11 +774,8 @@ impl<'tcx> QueryContext<'tcx> {
775774
pub fn create_global_ctxt<'tcx>(
776775
compiler: &'tcx Compiler,
777776
lint_store: Lrc<LintStore>,
778-
krate: Lrc<ast::Crate>,
779777
dep_graph: DepGraph,
780-
resolver: Rc<RefCell<BoxedResolver>>,
781-
outputs: OutputFilenames,
782-
crate_name: Symbol,
778+
untracked: Untracked,
783779
queries: &'tcx OnceCell<TcxQueries<'tcx>>,
784780
global_ctxt: &'tcx OnceCell<GlobalCtxt<'tcx>>,
785781
arena: &'tcx WorkerLocal<Arena<'tcx>>,
@@ -790,8 +786,6 @@ pub fn create_global_ctxt<'tcx>(
790786
// incr. comp. yet.
791787
dep_graph.assert_ignored();
792788

793-
let resolver_outputs = BoxedResolver::to_resolver_outputs(resolver);
794-
795789
let sess = &compiler.session();
796790
let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);
797791

@@ -810,12 +804,6 @@ pub fn create_global_ctxt<'tcx>(
810804
TcxQueries::new(local_providers, extern_providers, query_result_on_disk_cache)
811805
});
812806

813-
let ty::ResolverOutputs {
814-
global_ctxt: untracked_resolutions,
815-
ast_lowering: untracked_resolver_for_lowering,
816-
untracked,
817-
} = resolver_outputs;
818-
819807
let gcx = sess.time("setup_global_ctxt", || {
820808
global_ctxt.get_or_init(move || {
821809
TyCtxt::create_global_ctxt(
@@ -832,19 +820,7 @@ pub fn create_global_ctxt<'tcx>(
832820
})
833821
});
834822

835-
let mut qcx = QueryContext { gcx };
836-
qcx.enter(|tcx| {
837-
let feed = tcx.feed_unit_query();
838-
feed.resolver_for_lowering(
839-
tcx.arena.alloc(Steal::new((untracked_resolver_for_lowering, krate))),
840-
);
841-
feed.resolutions(tcx.arena.alloc(untracked_resolutions));
842-
feed.output_filenames(tcx.arena.alloc(std::sync::Arc::new(outputs)));
843-
feed.features_query(sess.features_untracked());
844-
let feed = tcx.feed_local_crate();
845-
feed.crate_name(crate_name);
846-
});
847-
qcx
823+
QueryContext { gcx }
848824
}
849825

850826
/// Runs the resolution, type-checking, region checking and other

compiler/rustc_interface/src/queries.rs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rustc_incremental::DepGraphFuture;
1313
use rustc_lint::LintStore;
1414
use rustc_middle::arena::Arena;
1515
use rustc_middle::dep_graph::DepGraph;
16-
use rustc_middle::ty::{GlobalCtxt, TyCtxt};
16+
use rustc_middle::ty::{self, GlobalCtxt, TyCtxt};
1717
use rustc_query_impl::Queries as TcxQueries;
1818
use rustc_session::config::{self, OutputFilenames, OutputType};
1919
use rustc_session::{output::find_crate_name, Session};
@@ -222,19 +222,35 @@ impl<'tcx> Queries<'tcx> {
222222
crate_name,
223223
)?;
224224

225-
Ok(passes::create_global_ctxt(
225+
let ty::ResolverOutputs {
226+
untracked,
227+
global_ctxt: untracked_resolutions,
228+
ast_lowering: untracked_resolver_for_lowering,
229+
} = BoxedResolver::to_resolver_outputs(resolver);
230+
231+
let mut qcx = passes::create_global_ctxt(
226232
self.compiler,
227233
lint_store,
228-
krate,
229234
self.dep_graph()?.steal(),
230-
resolver,
231-
outputs,
232-
crate_name,
235+
untracked,
233236
&self.queries,
234237
&self.gcx,
235238
&self.arena,
236239
&self.hir_arena,
237-
))
240+
);
241+
242+
qcx.enter(|tcx| {
243+
let feed = tcx.feed_unit_query();
244+
feed.resolver_for_lowering(
245+
tcx.arena.alloc(Steal::new((untracked_resolver_for_lowering, krate))),
246+
);
247+
feed.resolutions(tcx.arena.alloc(untracked_resolutions));
248+
feed.output_filenames(tcx.arena.alloc(std::sync::Arc::new(outputs)));
249+
feed.features_query(tcx.sess.features_untracked());
250+
let feed = tcx.feed_local_crate();
251+
feed.crate_name(crate_name);
252+
});
253+
Ok(qcx)
238254
})
239255
}
240256

0 commit comments

Comments
 (0)