diff --git a/src/libstd/fun_treemap.rs b/src/libstd/fun_treemap.rs index 714d6c93ffa2..778a62eebbe4 100644 --- a/src/libstd/fun_treemap.rs +++ b/src/libstd/fun_treemap.rs @@ -60,7 +60,7 @@ fn find(m: Treemap, +k: K) -> Option { } /// Visit all pairs in the map in order. -fn traverse(m: Treemap, f: fn(K, V)) { +fn traverse(m: Treemap, f: fn((&K), (&V))) { match *m { Empty => (), /* @@ -72,7 +72,7 @@ fn traverse(m: Treemap, f: fn(K, V)) { // copy v to make aliases work out let v1 = v; traverse(left, f); - f(k, v1); + f(&k, &v1); traverse(right, f); } } diff --git a/src/libstd/list.rs b/src/libstd/list.rs index b4e8678f6ae4..297720cbde9c 100644 --- a/src/libstd/list.rs +++ b/src/libstd/list.rs @@ -32,7 +32,7 @@ fn from_vec(v: &[T]) -> @List { */ fn foldl(+z: T, ls: @List, f: fn((&T), (&U)) -> T) -> T { let mut accum: T = z; - do iter(ls) |elt| { accum = f(&accum, &elt);} + do iter(ls) |elt| { accum = f(&accum, elt);} accum } @@ -121,11 +121,11 @@ pure fn push(ll: &mut @list, +vv: T) { */ /// Iterate over a list -fn iter(l: @List, f: fn(T)) { +fn iter(l: @List, f: fn((&T))) { let mut cur = l; loop { cur = match *cur { - Cons(hd, tl) => { + Cons(ref hd, tl) => { f(hd); tl }