Skip to content

Commit c00937f

Browse files
committed
Inline and remove create_compiler_and_run.
It has a single call site.
1 parent 226387a commit c00937f

File tree

1 file changed

+52
-54
lines changed

1 file changed

+52
-54
lines changed

compiler/rustc_interface/src/interface.rs

Lines changed: 52 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -276,67 +276,65 @@ pub struct Config {
276276
pub registry: Registry,
277277
}
278278

279-
fn create_compiler_and_run<R>(config: Config, f: impl FnOnce(&Compiler) -> R) -> R {
280-
crate::callbacks::setup_callbacks();
281-
282-
let registry = &config.registry;
283-
let (mut sess, codegen_backend) = util::create_session(
284-
config.opts,
285-
config.crate_cfg,
286-
config.crate_check_cfg,
287-
config.diagnostic_output,
288-
config.file_loader,
289-
config.input_path.clone(),
290-
config.lint_caps,
291-
config.make_codegen_backend,
292-
registry.clone(),
293-
);
294-
295-
if let Some(parse_sess_created) = config.parse_sess_created {
296-
parse_sess_created(
297-
&mut Lrc::get_mut(&mut sess)
298-
.expect("create_session() should never share the returned session")
299-
.parse_sess,
300-
);
301-
}
302-
303-
let temps_dir = sess.opts.unstable_opts.temps_dir.as_ref().map(|o| PathBuf::from(&o));
304-
305-
let compiler = Compiler {
306-
sess,
307-
codegen_backend,
308-
input: config.input,
309-
input_path: config.input_path,
310-
output_dir: config.output_dir,
311-
output_file: config.output_file,
312-
temps_dir,
313-
register_lints: config.register_lints,
314-
override_queries: config.override_queries,
315-
};
316-
317-
rustc_span::with_source_map(compiler.sess.parse_sess.clone_source_map(), move || {
318-
let r = {
319-
let _sess_abort_error = OnDrop(|| {
320-
compiler.sess.finish_diagnostics(registry);
321-
});
322-
323-
f(&compiler)
324-
};
325-
326-
let prof = compiler.sess.prof.clone();
327-
prof.generic_activity("drop_compiler").run(move || drop(compiler));
328-
r
329-
})
330-
}
331-
332279
// JUSTIFICATION: before session exists, only config
333280
#[allow(rustc::bad_opt_access)]
334281
pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Send) -> R {
335282
trace!("run_compiler");
336283
util::run_in_thread_pool_with_globals(
337284
config.opts.edition,
338285
config.opts.unstable_opts.threads,
339-
|| create_compiler_and_run(config, f),
286+
|| {
287+
crate::callbacks::setup_callbacks();
288+
289+
let registry = &config.registry;
290+
let (mut sess, codegen_backend) = util::create_session(
291+
config.opts,
292+
config.crate_cfg,
293+
config.crate_check_cfg,
294+
config.diagnostic_output,
295+
config.file_loader,
296+
config.input_path.clone(),
297+
config.lint_caps,
298+
config.make_codegen_backend,
299+
registry.clone(),
300+
);
301+
302+
if let Some(parse_sess_created) = config.parse_sess_created {
303+
parse_sess_created(
304+
&mut Lrc::get_mut(&mut sess)
305+
.expect("create_session() should never share the returned session")
306+
.parse_sess,
307+
);
308+
}
309+
310+
let temps_dir = sess.opts.unstable_opts.temps_dir.as_ref().map(|o| PathBuf::from(&o));
311+
312+
let compiler = Compiler {
313+
sess,
314+
codegen_backend,
315+
input: config.input,
316+
input_path: config.input_path,
317+
output_dir: config.output_dir,
318+
output_file: config.output_file,
319+
temps_dir,
320+
register_lints: config.register_lints,
321+
override_queries: config.override_queries,
322+
};
323+
324+
rustc_span::with_source_map(compiler.sess.parse_sess.clone_source_map(), move || {
325+
let r = {
326+
let _sess_abort_error = OnDrop(|| {
327+
compiler.sess.finish_diagnostics(registry);
328+
});
329+
330+
f(&compiler)
331+
};
332+
333+
let prof = compiler.sess.prof.clone();
334+
prof.generic_activity("drop_compiler").run(move || drop(compiler));
335+
r
336+
})
337+
},
340338
)
341339
}
342340

0 commit comments

Comments
 (0)