Skip to content

Commit cbc3482

Browse files
committed
---
yaml --- r: 142524 b: refs/heads/try2 c: 9999622 h: refs/heads/master v: v3
1 parent 1c75745 commit cbc3482

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
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: ba13482dfabe4d0022f1fc2375b500cce53a05ce
8+
refs/heads/try2: 9999622e44558a6b138e7d5e3e98ba5db2eb1465
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/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/try2/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)