Skip to content

Commit 09edfa5

Browse files
committed
---
yaml --- r: 64898 b: refs/heads/snap-stage3 c: fac18c1 h: refs/heads/master v: v3
1 parent f82bcf9 commit 09edfa5

File tree

3 files changed

+23
-49
lines changed

3 files changed

+23
-49
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 2d28d645422c1617be58c8ca7ad9a457264ca850
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: 4fbd37d4bdabb60e20b6dada36ff23c96e90e482
4+
refs/heads/snap-stage3: fac18c1cb869c5b2125091ffd5b68b9c04a94e93
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/libextra/getopts.rs

Lines changed: 18 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,7 @@ pub fn optflag(name: &str) -> Opt {
140140
return Opt {name: mkname(name), hasarg: No, occur: Optional};
141141
}
142142

143-
/** Create an option that is optional, does not take an argument,
144-
* and may occur multiple times.
145-
*/
143+
/// Create an option that is optional and does not take an argument
146144
pub fn optflagmulti(name: &str) -> Opt {
147145
return Opt {name: mkname(name), hasarg: No, occur: Multi};
148146
}
@@ -371,14 +369,7 @@ fn opt_vals(mm: &Matches, nm: &str) -> ~[Optval] {
371369
};
372370
}
373371

374-
fn opt_val(mm: &Matches, nm: &str) -> Option<Optval> {
375-
let vals = opt_vals(mm, nm);
376-
if (vals.is_empty()) {
377-
None
378-
} else {
379-
Some(opt_vals(mm, nm)[0].clone())
380-
}
381-
}
372+
fn opt_val(mm: &Matches, nm: &str) -> Optval { opt_vals(mm, nm)[0].clone() }
382373

383374
/// Returns true if an option was matched
384375
pub fn opt_present(mm: &Matches, nm: &str) -> bool {
@@ -409,10 +400,7 @@ pub fn opts_present(mm: &Matches, names: &[~str]) -> bool {
409400
* argument
410401
*/
411402
pub fn opt_str(mm: &Matches, nm: &str) -> ~str {
412-
return match opt_val(mm, nm) {
413-
Some(Val(s)) => s,
414-
_ => fail!()
415-
};
403+
return match opt_val(mm, nm) { Val(s) => s, _ => fail!() };
416404
}
417405

418406
/**
@@ -424,7 +412,7 @@ pub fn opt_str(mm: &Matches, nm: &str) -> ~str {
424412
pub fn opts_str(mm: &Matches, names: &[~str]) -> ~str {
425413
for names.iter().advance |nm| {
426414
match opt_val(mm, *nm) {
427-
Some(Val(ref s)) => return (*s).clone(),
415+
Val(ref s) => return (*s).clone(),
428416
_ => ()
429417
}
430418
}
@@ -1330,41 +1318,24 @@ mod tests {
13301318
13311319
#[test]
13321320
fn test_multi() {
1321+
let args = ~[~"-e", ~"foo", ~"--encrypt", ~"foo"];
13331322
let opts = ~[optopt("e"), optopt("encrypt"), optopt("f")];
1334-
1335-
let args_single = ~[~"-e", ~"foo"];
1336-
let matches_single = &match getopts(args_single, opts) {
1337-
result::Ok(m) => m,
1338-
result::Err(_) => fail!()
1339-
};
1340-
assert!(opts_present(matches_single, [~"e"]));
1341-
assert!(opts_present(matches_single, [~"encrypt", ~"e"]));
1342-
assert!(opts_present(matches_single, [~"e", ~"encrypt"]));
1343-
assert!(!opts_present(matches_single, [~"encrypt"]));
1344-
assert!(!opts_present(matches_single, [~"thing"]));
1345-
assert!(!opts_present(matches_single, []));
1346-
1347-
assert_eq!(opts_str(matches_single, [~"e"]), ~"foo");
1348-
assert_eq!(opts_str(matches_single, [~"e", ~"encrypt"]), ~"foo");
1349-
assert_eq!(opts_str(matches_single, [~"encrypt", ~"e"]), ~"foo");
1350-
1351-
let args_both = ~[~"-e", ~"foo", ~"--encrypt", ~"foo"];
1352-
let matches_both = &match getopts(args_both, opts) {
1323+
let matches = &match getopts(args, opts) {
13531324
result::Ok(m) => m,
13541325
result::Err(_) => fail!()
13551326
};
1356-
assert!(opts_present(matches_both, [~"e"]));
1357-
assert!(opts_present(matches_both, [~"encrypt"]));
1358-
assert!(opts_present(matches_both, [~"encrypt", ~"e"]));
1359-
assert!(opts_present(matches_both, [~"e", ~"encrypt"]));
1360-
assert!(!opts_present(matches_both, [~"f"]));
1361-
assert!(!opts_present(matches_both, [~"thing"]));
1362-
assert!(!opts_present(matches_both, []));
1363-
1364-
assert_eq!(opts_str(matches_both, [~"e"]), ~"foo");
1365-
assert_eq!(opts_str(matches_both, [~"encrypt"]), ~"foo");
1366-
assert_eq!(opts_str(matches_both, [~"e", ~"encrypt"]), ~"foo");
1367-
assert_eq!(opts_str(matches_both, [~"encrypt", ~"e"]), ~"foo");
1327+
assert!(opts_present(matches, [~"e"]));
1328+
assert!(opts_present(matches, [~"encrypt"]));
1329+
assert!(opts_present(matches, [~"encrypt", ~"e"]));
1330+
assert!(opts_present(matches, [~"e", ~"encrypt"]));
1331+
assert!(!opts_present(matches, [~"f"]));
1332+
assert!(!opts_present(matches, [~"thing"]));
1333+
assert!(!opts_present(matches, []));
1334+
1335+
assert_eq!(opts_str(matches, [~"e"]), ~"foo");
1336+
assert_eq!(opts_str(matches, [~"encrypt"]), ~"foo");
1337+
assert_eq!(opts_str(matches, [~"e", ~"encrypt"]), ~"foo");
1338+
assert_eq!(opts_str(matches, [~"encrypt", ~"e"]), ~"foo");
13681339
}
13691340
13701341
#[test]

branches/snap-stage3/src/librustc/middle/trans/glue.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,10 @@ pub fn simplified_glue_type(tcx: ty::ctxt, field: uint, t: ty::t) -> ty::t {
136136

137137
if field == abi::tydesc_field_take_glue {
138138
match ty::get(t).sty {
139-
ty::ty_unboxed_vec(*) => { return ty::mk_u32(); }
139+
ty::ty_unboxed_vec(*) |
140+
ty::ty_uniq(*) |
141+
ty::ty_estr(ty::vstore_uniq) |
142+
ty::ty_evec(_, ty::vstore_uniq) => { return ty::mk_u32(); }
140143
_ => ()
141144
}
142145
}

0 commit comments

Comments
 (0)