Skip to content

Commit fb96ff8

Browse files
brsonalexcrichton
authored andcommitted
---
yaml --- r: 124813 b: refs/heads/auto c: 1c3655b h: refs/heads/master i: 124811: 80d9251 v: v3
1 parent 659734b commit fb96ff8

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: 9631bf2e2526173b21070eb532c6cb590c5869b8
16+
refs/heads/auto: 1c3655bed192e31bdf649ed5f4e728201ede17b2
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/src/librustc/driver/config.rs

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -593,24 +593,10 @@ fn parse_cfgspecs(cfgspecs: Vec<String> ) -> ast::CrateConfig {
593593
}
594594

595595
pub fn build_session_options(matches: &getopts::Matches) -> Options {
596-
let mut crate_types: Vec<CrateType> = Vec::new();
596+
597597
let unparsed_crate_types = matches.opt_strs("crate-type");
598-
for unparsed_crate_type in unparsed_crate_types.iter() {
599-
for part in unparsed_crate_type.as_slice().split(',') {
600-
let new_part = match part {
601-
"lib" => default_lib_output(),
602-
"rlib" => CrateTypeRlib,
603-
"staticlib" => CrateTypeStaticlib,
604-
"dylib" => CrateTypeDylib,
605-
"bin" => CrateTypeExecutable,
606-
_ => {
607-
early_error(format!("unknown crate type: `{}`",
608-
part).as_slice())
609-
}
610-
};
611-
crate_types.push(new_part)
612-
}
613-
}
598+
let crate_types = parse_crate_types_from_list(unparsed_crate_types)
599+
.unwrap_or_else(|e| early_error(e.as_slice()));
614600

615601
let parse_only = matches.opt_present("parse-only");
616602
let no_trans = matches.opt_present("no-trans");
@@ -804,6 +790,29 @@ pub fn build_session_options(matches: &getopts::Matches) -> Options {
804790
}
805791
}
806792

793+
pub fn parse_crate_types_from_list(crate_types_list_list: Vec<String>) -> Result<Vec<CrateType>, String> {
794+
795+
let mut crate_types: Vec<CrateType> = Vec::new();
796+
for unparsed_crate_type in crate_types_list_list.iter() {
797+
for part in unparsed_crate_type.as_slice().split(',') {
798+
let new_part = match part {
799+
"lib" => default_lib_output(),
800+
"rlib" => CrateTypeRlib,
801+
"staticlib" => CrateTypeStaticlib,
802+
"dylib" => CrateTypeDylib,
803+
"bin" => CrateTypeExecutable,
804+
_ => {
805+
return Err(format!("unknown crate type: `{}`",
806+
part));
807+
}
808+
};
809+
crate_types.push(new_part)
810+
}
811+
}
812+
813+
return Ok(crate_types);
814+
}
815+
807816
impl fmt::Show for CrateType {
808817
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
809818
match *self {

0 commit comments

Comments
 (0)