|
11 | 11 | use back::archive::{Archive, METADATA_FILENAME};
|
12 | 12 | use back::rpath;
|
13 | 13 | use back::svh::Svh;
|
14 |
| -use driver::driver::{CrateTranslation, OutputFilenames}; |
| 14 | +use driver::driver::{CrateTranslation, OutputFilenames, Input, FileInput}; |
15 | 15 | use driver::config::NoDebugInfo;
|
16 | 16 | use driver::session::Session;
|
17 | 17 | use driver::config;
|
@@ -545,10 +545,9 @@ pub mod write {
|
545 | 545 | * system linkers understand.
|
546 | 546 | */
|
547 | 547 |
|
548 |
| -// FIXME (#9639): This needs to handle non-utf8 `out_filestem` values |
549 | 548 | pub fn find_crate_name(sess: Option<&Session>,
|
550 | 549 | attrs: &[ast::Attribute],
|
551 |
| - out_filestem: &str) -> String { |
| 550 | + input: &Input) -> String { |
552 | 551 | use syntax::crateid::CrateId;
|
553 | 552 |
|
554 | 553 | let validate = |s: String, span: Option<Span>| {
|
@@ -591,11 +590,17 @@ pub fn find_crate_name(sess: Option<&Session>,
|
591 | 590 | }
|
592 | 591 | None => {}
|
593 | 592 | }
|
594 |
| - return validate(from_str(out_filestem).unwrap_or_else(|| { |
595 |
| - let mut s = out_filestem.chars().filter(|c| c.is_XID_continue()); |
596 |
| - from_str(s.collect::<String>().as_slice()) |
597 |
| - .or(from_str("rust-out")).unwrap() |
598 |
| - }), None) |
| 593 | + match *input { |
| 594 | + FileInput(ref path) => { |
| 595 | + match path.filestem_str() { |
| 596 | + Some(s) => return validate(s.to_string(), None), |
| 597 | + None => {} |
| 598 | + } |
| 599 | + } |
| 600 | + _ => {} |
| 601 | + } |
| 602 | + |
| 603 | + "rust-out".to_string() |
599 | 604 | }
|
600 | 605 |
|
601 | 606 | pub fn build_link_meta(sess: &Session, krate: &ast::Crate,
|
|
0 commit comments