diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 43ab77287a6..b55a3bee8b0 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -1865,6 +1865,7 @@ pub trait OwnedVector { fn consume(self, f: fn(uint, v: T)); fn filter(self, f: fn(t: &T) -> bool) -> ~[T]; fn partition(self, f: pure fn(&T) -> bool) -> (~[T], ~[T]); + fn grow_fn(&mut self, n: uint, op: iter::InitOp); } impl OwnedVector for ~[T] { @@ -1936,6 +1937,11 @@ impl OwnedVector for ~[T] { fn partition(self, f: fn(&T) -> bool) -> (~[T], ~[T]) { partition(self, f) } + + #[inline] + fn grow_fn(&mut self, n: uint, op: iter::InitOp) { + grow_fn(self, n, op); + } } impl Mutable for ~[T] { @@ -1946,7 +1952,6 @@ impl Mutable for ~[T] { pub trait OwnedCopyableVector { fn push_all(&mut self, rhs: &[const T]); fn grow(&mut self, n: uint, initval: &T); - fn grow_fn(&mut self, n: uint, op: iter::InitOp); fn grow_set(&mut self, index: uint, initval: &T, val: T); } @@ -1961,11 +1966,6 @@ impl OwnedCopyableVector for ~[T] { grow(self, n, initval); } - #[inline] - fn grow_fn(&mut self, n: uint, op: iter::InitOp) { - grow_fn(self, n, op); - } - #[inline] fn grow_set(&mut self, index: uint, initval: &T, val: T) { grow_set(self, index, initval, val); diff --git a/src/libstd/deque.rs b/src/libstd/deque.rs index 2c90100a6f6..b1285dac9f4 100644 --- a/src/libstd/deque.rs +++ b/src/libstd/deque.rs @@ -100,7 +100,7 @@ fn grow(nelts: uint, lo: uint, elts: &mut [Option]) -> ~[Option] { assert nelts == elts.len(); let mut rv = ~[]; - do vec::grow_fn(&mut rv, nelts + 1) |i| { + do rv.grow_fn(nelts + 1) |i| { let mut element = None; element <-> elts[(lo + i) % nelts]; element