auto merge of #17834 : sfackler/rust/rustdoc-cfgs, r=alexcrichton,alexcrichton

Rustdoc would previously improperly handle key="value" style cfgs, which
are notably used for Cargo features.
This commit is contained in:
bors 2014-10-07 21:12:10 +00:00
commit 8881c3524b
2 changed files with 3 additions and 8 deletions

View File

@ -630,7 +630,7 @@ pub fn optgroups() -> Vec<getopts::OptGroup> {
// Convert strings provided as --cfg [cfgspec] into a crate_cfg // Convert strings provided as --cfg [cfgspec] into a crate_cfg
fn parse_cfgspecs(cfgspecs: Vec<String> ) -> ast::CrateConfig { pub fn parse_cfgspecs(cfgspecs: Vec<String> ) -> ast::CrateConfig {
cfgspecs.into_iter().map(|s| { cfgspecs.into_iter().map(|s| {
parse::parse_meta_from_source_str("cfgspec".to_string(), parse::parse_meta_from_source_str("cfgspec".to_string(),
s.to_string(), s.to_string(),

View File

@ -14,8 +14,6 @@
use rustc::back::link; use rustc::back::link;
use syntax::{ast, ast_map, codemap, diagnostic}; use syntax::{ast, ast_map, codemap, diagnostic};
use syntax::parse::token;
use syntax::ptr::P;
use std::cell::RefCell; use std::cell::RefCell;
use std::os; use std::os;
@ -95,6 +93,7 @@ pub fn run_core(libs: Vec<Path>, cfgs: Vec<String>, externs: Externs,
lint_opts: vec!((warning_lint, lint::Allow)), lint_opts: vec!((warning_lint, lint::Allow)),
externs: externs, externs: externs,
target_triple: triple.unwrap_or(driver::host_triple().to_string()), target_triple: triple.unwrap_or(driver::host_triple().to_string()),
cfg: config::parse_cfgspecs(cfgs),
..config::basic_options().clone() ..config::basic_options().clone()
}; };
@ -108,11 +107,7 @@ pub fn run_core(libs: Vec<Path>, cfgs: Vec<String>, externs: Externs,
Some(cpath.clone()), Some(cpath.clone()),
span_diagnostic_handler); span_diagnostic_handler);
let mut cfg = config::build_configuration(&sess); let cfg = config::build_configuration(&sess);
for cfg_ in cfgs.into_iter() {
let cfg_ = token::intern_and_get_ident(cfg_.as_slice());
cfg.push(P(codemap::dummy_spanned(ast::MetaWord(cfg_))));
}
let krate = driver::phase_1_parse_input(&sess, cfg, &input); let krate = driver::phase_1_parse_input(&sess, cfg, &input);