Skip to content

Commit 3a4798c

Browse files
committed
Make Compiler::{sess,codegen_backend} public.
And remove the relevant getters on `Compiler` and `Queries`.
1 parent 09c807e commit 3a4798c

File tree

8 files changed

+28
-41
lines changed

8 files changed

+28
-41
lines changed

compiler/rustc_driver_impl/src/lib.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -360,8 +360,8 @@ fn run_compiler(
360360
drop(default_handler);
361361

362362
interface::run_compiler(config, |compiler| {
363-
let sess = compiler.session();
364-
let codegen_backend = compiler.codegen_backend();
363+
let sess = &compiler.sess;
364+
let codegen_backend = &*compiler.codegen_backend;
365365

366366
// This implements `-Whelp`. It should be handled very early, like
367367
// `--help`/`-Zhelp`/`-Chelp`. This is the earliest it can run, because
@@ -672,7 +672,7 @@ fn process_rlink(sess: &Session, compiler: &interface::Compiler) {
672672
};
673673
}
674674
};
675-
let result = compiler.codegen_backend().link(sess, codegen_results, &outputs);
675+
let result = compiler.codegen_backend.link(sess, codegen_results, &outputs);
676676
abort_on_err(result, sess);
677677
} else {
678678
sess.emit_fatal(RlinkNotAFile {})

compiler/rustc_interface/src/interface.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,12 @@ pub type Result<T> = result::Result<T, ErrorGuaranteed>;
3838
/// Can be used to run `rustc_interface` queries.
3939
/// Created by passing [`Config`] to [`run_compiler`].
4040
pub struct Compiler {
41-
sess: Session,
42-
codegen_backend: Box<dyn CodegenBackend>,
41+
pub sess: Session,
42+
pub codegen_backend: Box<dyn CodegenBackend>,
4343
pub(crate) override_queries: Option<fn(&Session, &mut Providers)>,
4444
}
4545

4646
impl Compiler {
47-
pub fn session(&self) -> &Session {
48-
&self.sess
49-
}
50-
pub fn codegen_backend(&self) -> &dyn CodegenBackend {
51-
&*self.codegen_backend
52-
}
5347
pub fn build_output_filenames(
5448
&self,
5549
sess: &Session,

compiler/rustc_interface/src/passes.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -645,10 +645,10 @@ pub fn create_global_ctxt<'tcx>(
645645
// incr. comp. yet.
646646
dep_graph.assert_ignored();
647647

648-
let sess = &compiler.session();
648+
let sess = &compiler.sess;
649649
let query_result_on_disk_cache = rustc_incremental::load_query_result_cache(sess);
650650

651-
let codegen_backend = compiler.codegen_backend();
651+
let codegen_backend = &compiler.codegen_backend;
652652
let mut providers = *DEFAULT_QUERY_PROVIDERS;
653653
codegen_backend.provide(&mut providers);
654654

compiler/rustc_interface/src/queries.rs

+14-21
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ use rustc_middle::dep_graph::DepGraph;
1717
use rustc_middle::ty::{GlobalCtxt, TyCtxt};
1818
use rustc_session::config::{self, CrateType, OutputFilenames, OutputType};
1919
use rustc_session::cstore::Untracked;
20-
use rustc_session::{output::find_crate_name, Session};
20+
use rustc_session::output::find_crate_name;
21+
use rustc_session::Session;
2122
use rustc_span::symbol::sym;
2223
use std::any::Any;
2324
use std::cell::{RefCell, RefMut};
@@ -101,25 +102,18 @@ impl<'tcx> Queries<'tcx> {
101102
}
102103
}
103104

104-
fn session(&self) -> &Session {
105-
self.compiler.session()
106-
}
107-
108-
fn codegen_backend(&self) -> &dyn CodegenBackend {
109-
self.compiler.codegen_backend()
110-
}
111-
112105
pub fn parse(&self) -> Result<QueryResult<'_, ast::Crate>> {
113-
self.parse
114-
.compute(|| passes::parse(self.session()).map_err(|mut parse_error| parse_error.emit()))
106+
self.parse.compute(|| {
107+
passes::parse(&self.compiler.sess).map_err(|mut parse_error| parse_error.emit())
108+
})
115109
}
116110

117111
#[deprecated = "pre_configure may be made private in the future. If you need it please open an issue with your use case."]
118112
pub fn pre_configure(&self) -> Result<QueryResult<'_, (ast::Crate, ast::AttrVec)>> {
119113
self.pre_configure.compute(|| {
120114
let mut krate = self.parse()?.steal();
121115

122-
let sess = self.session();
116+
let sess = &self.compiler.sess;
123117
rustc_builtin_macros::cmdline_attrs::inject(
124118
&mut krate,
125119
&sess.parse_sess,
@@ -134,7 +128,7 @@ impl<'tcx> Queries<'tcx> {
134128

135129
pub fn global_ctxt(&'tcx self) -> Result<QueryResult<'_, &'tcx GlobalCtxt<'tcx>>> {
136130
self.gcx.compute(|| {
137-
let sess = self.session();
131+
let sess = &self.compiler.sess;
138132
#[allow(deprecated)]
139133
let (krate, pre_configured_attrs) = self.pre_configure()?.steal();
140134

@@ -150,7 +144,7 @@ impl<'tcx> Queries<'tcx> {
150144
let dep_graph = setup_dep_graph(sess, crate_name, stable_crate_id)?;
151145

152146
let cstore = FreezeLock::new(Box::new(CStore::new(
153-
self.codegen_backend().metadata_loader(),
147+
self.compiler.codegen_backend.metadata_loader(),
154148
stable_crate_id,
155149
)) as _);
156150
let definitions = FreezeLock::new(Definitions::new(stable_crate_id));
@@ -189,16 +183,16 @@ impl<'tcx> Queries<'tcx> {
189183
pub fn ongoing_codegen(&'tcx self) -> Result<Box<dyn Any>> {
190184
self.global_ctxt()?.enter(|tcx| {
191185
// Don't do code generation if there were any errors
192-
self.session().compile_status()?;
186+
self.compiler.sess.compile_status()?;
193187

194188
// If we have any delayed bugs, for example because we created TyKind::Error earlier,
195189
// it's likely that codegen will only cause more ICEs, obscuring the original problem
196-
self.session().diagnostic().flush_delayed();
190+
self.compiler.sess.diagnostic().flush_delayed();
197191

198192
// Hook for UI tests.
199193
Self::check_for_rustc_errors_attr(tcx);
200194

201-
Ok(passes::start_codegen(self.codegen_backend(), tcx))
195+
Ok(passes::start_codegen(&*self.compiler.codegen_backend, tcx))
202196
})
203197
}
204198

@@ -317,17 +311,16 @@ impl Compiler {
317311
// after this point, they'll show up as "<unknown>" in self-profiling data.
318312
{
319313
let _prof_timer =
320-
queries.session().prof.generic_activity("self_profile_alloc_query_strings");
314+
queries.compiler.sess.prof.generic_activity("self_profile_alloc_query_strings");
321315
gcx.enter(rustc_query_impl::alloc_self_profile_query_strings);
322316
}
323317

324-
self.session()
325-
.time("serialize_dep_graph", || gcx.enter(rustc_incremental::save_dep_graph));
318+
self.sess.time("serialize_dep_graph", || gcx.enter(rustc_incremental::save_dep_graph));
326319
}
327320

328321
// The timer's lifetime spans the dropping of `queries`, which contains
329322
// the global context.
330-
_timer = Some(self.session().timer("free_global_ctxt"));
323+
_timer = Some(self.sess.timer("free_global_ctxt"));
331324

332325
ret
333326
}

src/librustdoc/doctest.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -127,17 +127,17 @@ pub(crate) fn run(options: RustdocOptions) -> Result<(), ErrorGuaranteed> {
127127
options,
128128
false,
129129
opts,
130-
Some(compiler.session().parse_sess.clone_source_map()),
130+
Some(compiler.sess.parse_sess.clone_source_map()),
131131
None,
132132
enable_per_target_ignores,
133133
);
134134

135135
let mut hir_collector = HirCollector {
136-
sess: compiler.session(),
136+
sess: &compiler.sess,
137137
collector: &mut collector,
138138
map: tcx.hir(),
139139
codes: ErrorCodes::from(
140-
compiler.session().opts.unstable_features.is_nightly_build(),
140+
compiler.sess.opts.unstable_features.is_nightly_build(),
141141
),
142142
tcx,
143143
};
@@ -150,7 +150,7 @@ pub(crate) fn run(options: RustdocOptions) -> Result<(), ErrorGuaranteed> {
150150

151151
collector
152152
});
153-
if compiler.session().diagnostic().has_errors_or_lint_errors().is_some() {
153+
if compiler.sess.diagnostic().has_errors_or_lint_errors().is_some() {
154154
FatalError.raise();
155155
}
156156

src/librustdoc/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,7 @@ fn main_args(
794794
let config = core::create_config(options, &render_options, using_internal_features);
795795

796796
interface::run_compiler(config, |compiler| {
797-
let sess = compiler.session();
797+
let sess = &compiler.sess;
798798

799799
if sess.opts.describe_lints {
800800
rustc_driver::describe_lints(sess);

tests/run-make-fulldeps/issue-19371/foo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,6 @@ fn compile(code: String, output: PathBuf, sysroot: PathBuf) {
7272
let ongoing_codegen = queries.ongoing_codegen()?;
7373
queries.linker(ongoing_codegen)
7474
});
75-
linker.unwrap().link(compiler.session(), compiler.codegen_backend()).unwrap();
75+
linker.unwrap().link(&compiler.sess, &*compiler.codegen_backend).unwrap();
7676
});
7777
}

tests/run-make-fulldeps/obtain-borrowck/driver.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ impl rustc_driver::Callbacks for CompilerCalls {
6161
compiler: &Compiler,
6262
queries: &'tcx Queries<'tcx>,
6363
) -> Compilation {
64-
compiler.session().abort_if_errors();
64+
compiler.sess.abort_if_errors();
6565
queries.global_ctxt().unwrap().enter(|tcx| {
6666
// Collect definition ids of MIR bodies.
6767
let hir = tcx.hir();

0 commit comments

Comments
 (0)