Skip to content

Commit 4b806b4

Browse files
committed
std: remove each_char* fns and methods from str, replaced by iterators.
1 parent 513d229 commit 4b806b4

File tree

10 files changed

+80
-149
lines changed

10 files changed

+80
-149
lines changed

src/compiletest/runtest.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use procsrv;
2222
use util;
2323
use util::logv;
2424

25+
use core::iterator::IteratorUtil;
2526
use core::io;
2627
use core::os;
2728
use core::str;
@@ -780,7 +781,7 @@ fn _arm_exec_compiled_test(config: &config, props: &TestProps,
780781
Some(~""));
781782

782783
let mut exitcode : int = 0;
783-
for str::each_char(exitcode_out) |c| {
784+
for exitcode_out.iter().advance |c| {
784785
if !c.is_digit() { break; }
785786
exitcode = exitcode * 10 + match c {
786787
'0' .. '9' => c as int - ('0' as int),

src/libextra/fileinput.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@ mod test {
414414
415415
use super::{FileInput, pathify, input_vec, input_vec_state};
416416
417+
use core::iterator::IteratorUtil;
417418
use core::io;
418419
use core::str;
419420
use core::uint;
@@ -455,7 +456,7 @@ mod test {
455456
456457
let fi = FileInput::from_vec(copy filenames);
457458
458-
for "012".each_chari |line, c| {
459+
for "012".iter().enumerate().advance |(line, c)| {
459460
assert_eq!(fi.read_byte(), c as int);
460461
assert_eq!(fi.state().line_num, line);
461462
assert_eq!(fi.state().line_num_file, 0);

src/libextra/json.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
1919
use core::prelude::*;
2020

21+
use core::iterator::IteratorUtil;
2122
use core::char;
2223
use core::float;
2324
use core::hashmap::HashMap;
@@ -58,7 +59,7 @@ pub struct Error {
5859

5960
fn escape_str(s: &str) -> ~str {
6061
let mut escaped = ~"\"";
61-
for str::each_char(s) |c| {
62+
for s.iter().advance |c| {
6263
match c {
6364
'"' => escaped += "\\\"",
6465
'\\' => escaped += "\\\\",
@@ -913,7 +914,8 @@ impl serialize::Decoder for Decoder {
913914

914915
fn read_char(&mut self) -> char {
915916
let mut v = ~[];
916-
for str::each_char(self.read_str()) |c| { v.push(c) }
917+
let s = self.read_str();
918+
for s.iter().advance |c| { v.push(c) }
917919
if v.len() != 1 { fail!("string must have one character") }
918920
v[0]
919921
}

src/libextra/net_url.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
use core::prelude::*;
1616

17+
use core::iterator::IteratorUtil;
1718
use core::cmp::Eq;
1819
use core::io::{Reader, ReaderUtil};
1920
use core::io;
@@ -358,7 +359,7 @@ pub fn query_to_str(query: &Query) -> ~str {
358359

359360
// returns the scheme and the rest of the url, or a parsing error
360361
pub fn get_scheme(rawurl: &str) -> Result<(~str, ~str), ~str> {
361-
for str::each_chari(rawurl) |i,c| {
362+
for rawurl.iter().enumerate().advance |(i,c)| {
362363
match c {
363364
'A' .. 'Z' | 'a' .. 'z' => loop,
364365
'0' .. '9' | '+' | '-' | '.' => {
@@ -418,7 +419,7 @@ fn get_authority(rawurl: &str) ->
418419
let mut colon_count = 0;
419420
let mut (pos, begin, end) = (0, 2, len);
420421

421-
for str::each_chari(rawurl) |i,c| {
422+
for rawurl.iter().enumerate().advance |(i,c)| {
422423
if i < 2 { loop; } // ignore the leading //
423424

424425
// deal with input class first
@@ -562,7 +563,7 @@ fn get_path(rawurl: &str, authority: bool) ->
562563
Result<(~str, ~str), ~str> {
563564
let len = str::len(rawurl);
564565
let mut end = len;
565-
for str::each_chari(rawurl) |i,c| {
566+
for rawurl.iter().enumerate().advance |(i,c)| {
566567
match c {
567568
'A' .. 'Z' | 'a' .. 'z' | '0' .. '9' | '&' |'\'' | '(' | ')' | '.'
568569
| '@' | ':' | '%' | '/' | '+' | '!' | '*' | ',' | ';' | '='

src/librustc/back/link.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use middle::trans::common::CrateContext;
2222
use middle::ty;
2323
use util::ppaux;
2424

25+
use core::iterator::IteratorUtil;
2526
use core::char;
2627
use core::hash::Streaming;
2728
use core::hash;
@@ -636,7 +637,7 @@ pub fn get_symbol_hash(ccx: @CrateContext, t: ty::t) -> @str {
636637
// gas accepts the following characters in symbols: a-z, A-Z, 0-9, ., _, $
637638
pub fn sanitize(s: &str) -> ~str {
638639
let mut result = ~"";
639-
for str::each_char(s) |c| {
640+
for s.iter().advance |c| {
640641
match c {
641642
// Escape these with $ sequences
642643
'@' => result += "$SP$",

src/libstd/rand.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ fn main () {
4343
use cast;
4444
use cmp;
4545
use int;
46+
use iterator::IteratorUtil;
4647
use local_data;
4748
use prelude::*;
4849
use str;
@@ -479,7 +480,7 @@ impl<R: Rng> RngUtil for R {
479480
fn gen_char_from(&mut self, chars: &str) -> char {
480481
assert!(!chars.is_empty());
481482
let mut cs = ~[];
482-
for str::each_char(chars) |c| { cs.push(c) }
483+
for chars.iter().advance |c| { cs.push(c) }
483484
self.choose(cs)
484485
}
485486

src/libstd/repr.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use intrinsic;
2222
use intrinsic::{TyDesc, TyVisitor, visit_tydesc};
2323
use intrinsic::Opaque;
2424
use io::{Writer, WriterUtil};
25+
use iterator::IteratorUtil;
2526
use libc::c_void;
2627
use managed;
2728
use ptr;
@@ -209,7 +210,7 @@ impl ReprVisitor {
209210

210211
pub fn write_escaped_slice(&self, slice: &str) {
211212
self.writer.write_char('"');
212-
for slice.each_char |ch| {
213+
for slice.iter().advance |ch| {
213214
self.writer.write_escaped_char(ch);
214215
}
215216
self.writer.write_char('"');

0 commit comments

Comments
 (0)