diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-11-04 16:26:20 +0000 | 
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2023-11-26 18:02:47 +0000 | 
| commit | 365a580bc44ea63d28ce10778d73f91e0b0f4c15 (patch) | |
| tree | a4367bdc80e7774106957263af68bf8accf2b86d /compiler/rustc_interface/src | |
| parent | 7ede8e2a5912778ce01b6a520c954c4e105126e6 (diff) | |
| download | rust-365a580bc44ea63d28ce10778d73f91e0b0f4c15.tar.gz rust-365a580bc44ea63d28ce10778d73f91e0b0f4c15.zip  | |
Mostly revert "Accept crate name instead of attributes in build_output_filenames"
Diffstat (limited to 'compiler/rustc_interface/src')
| -rw-r--r-- | compiler/rustc_interface/src/queries.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_interface/src/util.rs | 14 | 
2 files changed, 11 insertions, 5 deletions
diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs index 78edd65df23..e352547a6c6 100644 --- a/compiler/rustc_interface/src/queries.rs +++ b/compiler/rustc_interface/src/queries.rs @@ -135,7 +135,7 @@ impl<'tcx> Queries<'tcx> { sess.opts.cg.metadata.clone(), sess.cfg_version, ); - let outputs = util::build_output_filenames(sess, crate_name.to_string()); + let outputs = util::build_output_filenames(&pre_configured_attrs, sess); let dep_graph = setup_dep_graph(sess, crate_name, stable_crate_id)?; let cstore = FreezeLock::new(Box::new(CStore::new( diff --git a/compiler/rustc_interface/src/util.rs b/compiler/rustc_interface/src/util.rs index 5266cdcec17..b3ab01a740a 100644 --- a/compiler/rustc_interface/src/util.rs +++ b/compiler/rustc_interface/src/util.rs @@ -471,7 +471,7 @@ fn multiple_output_types_to_stdout( } } -pub fn build_output_filenames(sess: &Session, crate_name: String) -> OutputFilenames { +pub fn build_output_filenames(attrs: &[ast::Attribute], sess: &Session) -> OutputFilenames { if multiple_output_types_to_stdout( &sess.opts.output_types, sess.io.output_file == Some(OutFileName::Stdout), @@ -479,6 +479,12 @@ pub fn build_output_filenames(sess: &Session, crate_name: String) -> OutputFilen sess.emit_fatal(errors::MultipleOutputTypesToStdout); } + let crate_name = sess + .opts + .crate_name + .clone() + .or_else(|| rustc_attr::find_crate_name(attrs).map(|n| n.to_string())); + match sess.io.output_file { None => { // "-" as input file will cause the parser to read from stdin so we @@ -487,11 +493,11 @@ pub fn build_output_filenames(sess: &Session, crate_name: String) -> OutputFilen let dirpath = sess.io.output_dir.clone().unwrap_or_default(); // If a crate name is present, we use it as the link name - let stem = crate_name.clone(); + let stem = crate_name.clone().unwrap_or_else(|| sess.io.input.filestem().to_owned()); OutputFilenames::new( dirpath, - crate_name, + crate_name.unwrap_or_else(|| stem.replace('-', "_")), stem, None, sess.io.temps_dir.clone(), @@ -520,7 +526,7 @@ pub fn build_output_filenames(sess: &Session, crate_name: String) -> OutputFilen out_file.filestem().unwrap_or_default().to_str().unwrap().to_string(); OutputFilenames::new( out_file.parent().unwrap_or_else(|| Path::new("")).to_path_buf(), - crate_name, + crate_name.unwrap_or_else(|| out_filestem.replace('-', "_")), out_filestem, ofile, sess.io.temps_dir.clone(),  | 
