Skip to content

Commit ae42905

Browse files
committed
iter: remove to_owned_vec
This needs to be removed as part of removing `~[T]`. Partial type hints are now allowed, and will remove the need to add a version of this method for `Vec<T>`. For now, this involves a few workarounds for partial type hints not completely working.
1 parent 7e7a5e3 commit ae42905

File tree

18 files changed

+48
-61
lines changed

18 files changed

+48
-61
lines changed

src/compiletest/runtest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
452452
let options_to_remove = [~"-O", ~"-g", ~"--debuginfo"];
453453
let new_options = split_maybe_args(options).move_iter()
454454
.filter(|x| !options_to_remove.contains(x))
455-
.to_owned_vec()
455+
.collect::<~[~str]>()
456456
.connect(" ");
457457
Some(new_options)
458458
}

src/libglob/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ impl Pattern {
223223
*/
224224
pub fn new(pattern: &str) -> Pattern {
225225

226-
let chars = pattern.chars().to_owned_vec();
226+
let chars = pattern.chars().collect::<~[_]>();
227227
let mut tokens = Vec::new();
228228
let mut i = 0;
229229

src/librand/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ mod test {
826826
let max_val = 100;
827827

828828
let mut r = task_rng();
829-
let vals = range(min_val, max_val).to_owned_vec();
829+
let vals = range(min_val, max_val).collect::<~[int]>();
830830
let small_sample = r.sample(vals.iter(), 5);
831831
let large_sample = r.sample(vals.iter(), vals.len() + 5);
832832

src/librustc/metadata/creader.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ fn visit_item(e: &Env, i: &ast::Item) {
197197
} else {
198198
None
199199
})
200-
.to_owned_vec();
200+
.collect::<~[&ast::Attribute]>();
201201
for m in link_args.iter() {
202202
match m.value_str() {
203203
Some(linkarg) => e.sess.cstore.add_used_link_args(linkarg.get()),
@@ -212,7 +212,7 @@ fn visit_item(e: &Env, i: &ast::Item) {
212212
} else {
213213
None
214214
})
215-
.to_owned_vec();
215+
.collect::<~[&ast::Attribute]>();
216216
for m in link_args.iter() {
217217
match m.meta_item_list() {
218218
Some(items) => {

src/librustc/middle/trans/base.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ fn get_extern_rust_fn(ccx: &CrateContext, inputs: &[ty::t], output: ty::t,
236236

237237
let f = decl_rust_fn(ccx, false, inputs, output, name);
238238
csearch::get_item_attrs(&ccx.sess().cstore, did, |meta_items| {
239-
set_llvm_fn_attrs(meta_items.iter().map(|&x| attr::mk_attr(x)).to_owned_vec(), f)
239+
set_llvm_fn_attrs(meta_items.iter().map(|&x| attr::mk_attr(x)).collect::<~[_]>(), f)
240240
});
241241

242242
ccx.externs.borrow_mut().insert(name.to_owned(), f);

src/librustc/middle/trans/consts.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -538,7 +538,7 @@ fn const_expr_unadjusted(cx: &CrateContext, e: &ast::Expr,
538538
};
539539

540540
expr::with_field_tys(tcx, ety, Some(e.id), |discr, field_tys| {
541-
let cs = field_tys.iter().enumerate()
541+
let (cs, inlineable) = slice::unzip(field_tys.iter().enumerate()
542542
.map(|(ix, &field_ty)| {
543543
match fs.iter().find(|f| field_ty.ident.name == f.ident.node.name) {
544544
Some(f) => const_expr(cx, (*f).expr, is_local),
@@ -552,8 +552,7 @@ fn const_expr_unadjusted(cx: &CrateContext, e: &ast::Expr,
552552
}
553553
}
554554
}
555-
}).to_owned_vec();
556-
let (cs, inlineable) = slice::unzip(cs.move_iter());
555+
}));
557556
(adt::trans_const(cx, repr, discr, cs),
558557
inlineable.iter().fold(true, |a, &b| a && b))
559558
})

src/librustdoc/html/markdown.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ pub fn render(w: &mut io::Writer, s: &str, print_toc: bool) -> fmt::Result {
133133
slice::raw::buf_as_slice((*text).data, (*text).size as uint, |text| {
134134
let text = str::from_utf8(text).unwrap();
135135
let mut lines = text.lines().filter(|l| stripped_filtered_line(*l).is_none());
136-
let text = lines.to_owned_vec().connect("\n");
136+
let text = lines.collect::<~[&str]>().connect("\n");
137137

138138
let buf = buf {
139139
data: text.as_bytes().as_ptr(),
@@ -186,7 +186,7 @@ pub fn render(w: &mut io::Writer, s: &str, print_toc: bool) -> fmt::Result {
186186
Some(s) => s.to_lower().into_str(),
187187
None => s.to_owned()
188188
}
189-
}).to_owned_vec().connect("-");
189+
}).collect::<~[~str]>().connect("-");
190190

191191
let opaque = unsafe {&mut *(opaque as *mut my_opaque)};
192192

@@ -284,7 +284,7 @@ pub fn find_testable_code(doc: &str, tests: &mut ::test::Collector) {
284284
let tests = &mut *(opaque as *mut ::test::Collector);
285285
let text = str::from_utf8(text).unwrap();
286286
let mut lines = text.lines().map(|l| stripped_filtered_line(l).unwrap_or(l));
287-
let text = lines.to_owned_vec().connect("\n");
287+
let text = lines.collect::<~[&str]>().connect("\n");
288288
tests.add_test(text, should_fail, no_run);
289289
})
290290
}

src/librustdoc/html/render.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,8 +1205,8 @@ fn item_trait(w: &mut Writer, it: &clean::Item,
12051205
it.name.get_ref().as_slice(),
12061206
t.generics,
12071207
parents));
1208-
let required = t.methods.iter().filter(|m| m.is_req()).to_owned_vec();
1209-
let provided = t.methods.iter().filter(|m| !m.is_req()).to_owned_vec();
1208+
let required = t.methods.iter().filter(|m| m.is_req()).collect::<~[&clean::TraitMethod]>();
1209+
let provided = t.methods.iter().filter(|m| !m.is_req()).collect::<~[&clean::TraitMethod]>();
12101210

12111211
if t.methods.len() == 0 {
12121212
try!(write!(w, "\\{ \\}"));
@@ -1502,11 +1502,11 @@ fn render_methods(w: &mut Writer, it: &clean::Item) -> fmt::Result {
15021502
let mut non_trait = v.iter().filter(|p| {
15031503
p.ref0().trait_.is_none()
15041504
});
1505-
let non_trait = non_trait.to_owned_vec();
1505+
let non_trait = non_trait.collect::<~[&(clean::Impl, Option<~str>)]>();
15061506
let mut traits = v.iter().filter(|p| {
15071507
p.ref0().trait_.is_some()
15081508
});
1509-
let traits = traits.to_owned_vec();
1509+
let traits = traits.collect::<~[&(clean::Impl, Option<~str>)]>();
15101510

15111511
if non_trait.len() > 0 {
15121512
try!(write!(w, "<h2 id='methods'>Methods</h2>"));

src/libstd/ascii.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -400,7 +400,7 @@ unsafe fn str_map_bytes(string: ~str, map: &'static [u8]) -> ~str {
400400

401401
#[inline]
402402
unsafe fn str_copy_map_bytes(string: &str, map: &'static [u8]) -> ~str {
403-
let bytes = string.bytes().map(|b| map[b]).to_owned_vec();
403+
let bytes = string.bytes().map(|b| map[b]).collect::<~[_]>();
404404

405405
str::raw::from_utf8_owned(bytes)
406406
}

src/libstd/iter.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -463,21 +463,6 @@ pub trait Iterator<A> {
463463
FromIterator::from_iterator(self)
464464
}
465465

466-
/// Loops through the entire iterator, collecting all of the elements into
467-
/// a unique vector. This is simply collect() specialized for vectors.
468-
///
469-
/// # Example
470-
///
471-
/// ```rust
472-
/// let a = [1, 2, 3, 4, 5];
473-
/// let b: ~[int] = a.iter().map(|&x| x).to_owned_vec();
474-
/// assert!(a == b);
475-
/// ```
476-
#[inline]
477-
fn to_owned_vec(&mut self) -> ~[A] {
478-
self.collect()
479-
}
480-
481466
/// Loops through `n` iterations, returning the `n`th element of the
482467
/// iterator.
483468
///

0 commit comments

Comments
 (0)