Skip to content

Commit 8f85650

Browse files
committed
---
yaml --- r: 68735 b: refs/heads/auto c: 9999622 h: refs/heads/master i: 68733: 408fb33 68731: 5a3b5ba 68727: 2f60910 68719: 4653971 68703: 1acc53c 68671: 7b4c3ad 68607: 70862b3 v: v3
1 parent 234b5fe commit 8f85650

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
@@ -14,6 +14,6 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1414
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1515
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1616
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
17-
refs/heads/auto: ba13482dfabe4d0022f1fc2375b500cce53a05ce
17+
refs/heads/auto: 9999622e44558a6b138e7d5e3e98ba5db2eb1465
1818
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1919
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c

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