diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 09292fc11612..b1bd92c5b1e7 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -773,11 +773,19 @@ fn iter_between(v: [const T], start: uint, end: uint, f: fn(T)) { } } -#[doc = "Iterates over two vectors in parallel"] +#[doc = " +Iterates over two vectors simultaneously + +# Failure + +Both vectors must have the same length +"] #[inline] -fn iter2(v: [ U], v2: [const T], f: fn(U, T)) { - let mut i = 0; - for elt in v { f(elt, v2[i]); i += 1; } +fn iter2(v1: [const U], v2: [const T], f: fn(U, T)) { + assert len(v1) == len(v2); + uint::range(0u, len(v1)) {|i| + f(v1[i], v2[i]) + } } #[doc = "