diff options
Diffstat (limited to 'src/librustdoc/core.rs')
| -rw-r--r-- | src/librustdoc/core.rs | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 245b2d162a7..058face151c 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -12,6 +12,7 @@ use rustc; use rustc::{driver, middle}; use rustc::middle::{privacy, ty}; use rustc::lint; +use rustc::back::link; use syntax::ast; use syntax::parse::token; @@ -83,7 +84,8 @@ fn get_ast_and_resolve(cpath: &Path, libs: HashSet<Path>, cfgs: Vec<String>) use rustc::driver::driver::{FileInput, phase_1_parse_input, phase_2_configure_and_expand, - phase_3_run_analysis_passes}; + phase_3_run_analysis_passes, + build_output_filenames}; use rustc::driver::config::build_configuration; let input = FileInput(cpath.clone()); @@ -115,13 +117,19 @@ fn get_ast_and_resolve(cpath: &Path, libs: HashSet<Path>, cfgs: Vec<String>) } let krate = phase_1_parse_input(&sess, cfg, &input); + + let t_outputs = build_output_filenames(&input, &None, &None, + krate.attrs.as_slice(), &sess); + let name = link::find_crate_name(Some(&sess), krate.attrs.as_slice(), + t_outputs.out_filestem.as_slice()); + let (krate, ast_map) - = phase_2_configure_and_expand(&sess, krate, &from_str("rustdoc").unwrap()) + = phase_2_configure_and_expand(&sess, krate, name.as_slice()) .expect("phase_2_configure_and_expand aborted in rustdoc!"); let driver::driver::CrateAnalysis { exported_items, public_items, ty_cx, .. - } = phase_3_run_analysis_passes(sess, &krate, ast_map); + } = phase_3_run_analysis_passes(sess, &krate, ast_map, name); debug!("crate: {:?}", krate); (DocContext { |
