Skip to content

Commit fa7660c

Browse files
committed
---
yaml --- r: 64108 b: refs/heads/snap-stage3 c: 9999622 h: refs/heads/master v: v3
1 parent db564cc commit fa7660c

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
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: ba13482dfabe4d0022f1fc2375b500cce53a05ce
4+
refs/heads/snap-stage3: 9999622e44558a6b138e7d5e3e98ba5db2eb1465
55
refs/heads/try: 7b78b52e602bb3ea8174f9b2006bff3315f03ef9
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/libstd/run.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -715,10 +715,16 @@ fn with_envp<T>(env: Option<&[(~str, ~str)]>, cb: &fn(*c_void) -> T) -> T {
715715
let mut tmps = ~[];
716716
let mut ptrs = ~[];
717717

718-
for es.iter().advance |&(k, v)| {
719-
let kv = @fmt!("%s=%s", k, v);
720-
tmps.push(kv);
721-
ptrs.push(str::as_c_str(*kv, |b| b));
718+
for es.iter().advance |pair| {
719+
// Use of match here is just to workaround limitations
720+
// in the stage0 irrefutable pattern impl.
721+
match pair {
722+
&(ref k, ref v) => {
723+
let kv = @fmt!("%s=%s", *k, *v);
724+
tmps.push(kv);
725+
ptrs.push(str::as_c_str(*kv, |b| b));
726+
}
727+
}
722728
}
723729

724730
ptrs.push(ptr::null());
@@ -1294,9 +1300,9 @@ mod tests {
12941300
let output = str::from_bytes(prog.finish_with_output().output);
12951301
12961302
let r = os::env();
1297-
for r.iter().advance |&(k, v)| {
1303+
for r.iter().advance |&(ref k, ref v)| {
12981304
// don't check windows magical empty-named variables
1299-
assert!(k.is_empty() || output.contains(fmt!("%s=%s", k, v)));
1305+
assert!(k.is_empty() || output.contains(fmt!("%s=%s", *k, *v)));
13001306
}
13011307
}
13021308
#[test]

branches/snap-stage3/src/libstd/vec.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -281,16 +281,16 @@ pub trait VectorVector<T> {
281281
impl<'self, T:Copy> VectorVector<T> for &'self [~[T]] {
282282
/// Flattens a vector of slices of T into a single vector of T.
283283
pub fn concat_vec(&self) -> ~[T] {
284-
self.flat_map(|&inner| inner)
284+
self.flat_map(|inner| copy *inner)
285285
}
286286

287287
/// Concatenate a vector of vectors, placing a given separator between each.
288288
pub fn connect_vec(&self, sep: &T) -> ~[T] {
289289
let mut r = ~[];
290290
let mut first = true;
291-
for self.iter().advance |&inner| {
291+
for self.iter().advance |inner| {
292292
if first { first = false; } else { r.push(copy *sep); }
293-
r.push_all(inner);
293+
r.push_all(copy *inner);
294294
}
295295
r
296296
}

0 commit comments

Comments
 (0)