Patch up some code that was using irrefutable patterns incorrectly.
This commit is contained in:
parent
ba13482dfa
commit
9999622e44
@ -715,10 +715,16 @@ fn with_envp<T>(env: Option<&[(~str, ~str)]>, cb: &fn(*c_void) -> T) -> T {
|
||||
let mut tmps = ~[];
|
||||
let mut ptrs = ~[];
|
||||
|
||||
for es.iter().advance |&(k, v)| {
|
||||
let kv = @fmt!("%s=%s", k, v);
|
||||
tmps.push(kv);
|
||||
ptrs.push(str::as_c_str(*kv, |b| b));
|
||||
for es.iter().advance |pair| {
|
||||
// Use of match here is just to workaround limitations
|
||||
// in the stage0 irrefutable pattern impl.
|
||||
match pair {
|
||||
&(ref k, ref v) => {
|
||||
let kv = @fmt!("%s=%s", *k, *v);
|
||||
tmps.push(kv);
|
||||
ptrs.push(str::as_c_str(*kv, |b| b));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ptrs.push(ptr::null());
|
||||
@ -1294,9 +1300,9 @@ mod tests {
|
||||
let output = str::from_bytes(prog.finish_with_output().output);
|
||||
|
||||
let r = os::env();
|
||||
for r.iter().advance |&(k, v)| {
|
||||
for r.iter().advance |&(ref k, ref v)| {
|
||||
// don't check windows magical empty-named variables
|
||||
assert!(k.is_empty() || output.contains(fmt!("%s=%s", k, v)));
|
||||
assert!(k.is_empty() || output.contains(fmt!("%s=%s", *k, *v)));
|
||||
}
|
||||
}
|
||||
#[test]
|
||||
|
@ -281,16 +281,16 @@ pub trait VectorVector<T> {
|
||||
impl<'self, T:Copy> VectorVector<T> for &'self [~[T]] {
|
||||
/// Flattens a vector of slices of T into a single vector of T.
|
||||
pub fn concat_vec(&self) -> ~[T] {
|
||||
self.flat_map(|&inner| inner)
|
||||
self.flat_map(|inner| copy *inner)
|
||||
}
|
||||
|
||||
/// Concatenate a vector of vectors, placing a given separator between each.
|
||||
pub fn connect_vec(&self, sep: &T) -> ~[T] {
|
||||
let mut r = ~[];
|
||||
let mut first = true;
|
||||
for self.iter().advance |&inner| {
|
||||
for self.iter().advance |inner| {
|
||||
if first { first = false; } else { r.push(copy *sep); }
|
||||
r.push_all(inner);
|
||||
r.push_all(copy *inner);
|
||||
}
|
||||
r
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user