From 12df65470fb8c5d57fb4f94d37557daa6282173f Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Mon, 25 Mar 2013 01:17:23 +1100 Subject: [PATCH 1/2] Kill some warnings: unused imports and old #[deny(..)]s. --- src/libcore/core.rc | 1 - src/libcore/repr.rs | 1 - src/libcore/vec.rs | 1 - src/libfuzzer/fuzzer.rc | 1 - src/librust/rust.rc | 2 -- src/librustc/driver/driver.rs | 1 - src/librustc/middle/kind.rs | 2 -- src/librustc/rustc.rc | 1 - src/librustdoc/rustdoc.rc | 1 - src/librustdoc/trim_pass.rs | 2 -- src/librusti/rusti.rc | 1 - src/librustpkg/rustpkg.rc | 1 - src/libstd/std.rc | 1 - 13 files changed, 16 deletions(-) diff --git a/src/libcore/core.rc b/src/libcore/core.rc index 080b98933459c..fe46164b83b10 100644 --- a/src/libcore/core.rc +++ b/src/libcore/core.rc @@ -51,7 +51,6 @@ Implicitly, all crates behave as if they included the following prologue: #[warn(vecs_implicitly_copyable)]; #[deny(non_camel_case_types)]; #[allow(deprecated_mutable_fields)]; -#[deny(deprecated_self)]; #[allow(deprecated_drop)]; // On Linux, link to the runtime with -lrt. diff --git a/src/libcore/repr.rs b/src/libcore/repr.rs index 07e7ae07840f2..39cc986f77252 100644 --- a/src/libcore/repr.rs +++ b/src/libcore/repr.rs @@ -24,7 +24,6 @@ use managed; use ptr; use reflect; use reflect::{MovePtr, MovePtrAdaptor, align}; -use str; use sys; use to_str::ToStr; use vec::UnboxedVecRepr; diff --git a/src/libcore/vec.rs b/src/libcore/vec.rs index 56d547874d8de..40994ef5a1e28 100644 --- a/src/libcore/vec.rs +++ b/src/libcore/vec.rs @@ -2547,7 +2547,6 @@ impl Clone for ~[A] { #[cfg(test)] mod tests { use option::{None, Option, Some}; - use option; use sys; use vec::*; use cmp::*; diff --git a/src/libfuzzer/fuzzer.rc b/src/libfuzzer/fuzzer.rc index 71f7072fa7f96..3580edb581462 100644 --- a/src/libfuzzer/fuzzer.rc +++ b/src/libfuzzer/fuzzer.rc @@ -25,7 +25,6 @@ #[allow(non_camel_case_types)]; #[allow(deprecated_mode)]; #[allow(deprecated_pattern)]; -#[deny(deprecated_self)]; extern mod core(vers = "0.6"); extern mod std(vers = "0.6"); diff --git a/src/librust/rust.rc b/src/librust/rust.rc index b0edff033c329..e590586abbb39 100644 --- a/src/librust/rust.rc +++ b/src/librust/rust.rc @@ -12,8 +12,6 @@ // FIXME #2238 Make commands run and test emit proper file endings on winds // FIXME #2238 Make run only accept source that emits an executable -#[deny(deprecated_self)]; - #[link(name = "rust", vers = "0.6", uuid = "4a24da33-5cc8-4037-9352-2cbe9bd9d27c", diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs index a4fdd7f1b5249..360a5ddccfd2a 100644 --- a/src/librustc/driver/driver.rs +++ b/src/librustc/driver/driver.rs @@ -25,7 +25,6 @@ use util::common::time; use util::ppaux; use core::int; -use core::io::WriterUtil; use core::io; use core::os; use core::str; diff --git a/src/librustc/middle/kind.rs b/src/librustc/middle/kind.rs index 02b0e17a346b8..0861e57c9b423 100644 --- a/src/librustc/middle/kind.rs +++ b/src/librustc/middle/kind.rs @@ -56,8 +56,6 @@ use syntax::{visit, ast_util}; // primitives in the stdlib are explicitly annotated to only take sendable // types. -use core::hashmap::linear::LinearSet; - pub static try_adding: &'static str = "Try adding a move"; pub type rval_map = HashMap; diff --git a/src/librustc/rustc.rc b/src/librustc/rustc.rc index 60248687f3f98..6a778a8336190 100644 --- a/src/librustc/rustc.rc +++ b/src/librustc/rustc.rc @@ -24,7 +24,6 @@ #[allow(non_camel_case_types)]; #[allow(deprecated_mode)]; #[warn(deprecated_pattern)]; -#[deny(deprecated_self)]; #[no_core]; diff --git a/src/librustdoc/rustdoc.rc b/src/librustdoc/rustdoc.rc index 5cae8e31657ea..9eb3e81662806 100644 --- a/src/librustdoc/rustdoc.rc +++ b/src/librustdoc/rustdoc.rc @@ -22,7 +22,6 @@ #[no_core]; #[allow(non_implicitly_copyable_typarams)]; -#[deny(deprecated_self)]; extern mod core(vers = "0.6"); extern mod std(vers = "0.6"); diff --git a/src/librustdoc/trim_pass.rs b/src/librustdoc/trim_pass.rs index 0adaed35d08f5..a1439e2e14932 100644 --- a/src/librustdoc/trim_pass.rs +++ b/src/librustdoc/trim_pass.rs @@ -18,8 +18,6 @@ is interpreted as the brief description. use pass::Pass; use text_pass; -use core::str; - pub fn mk_pass() -> Pass { text_pass::mk_pass(~"trim", |s| s.trim().to_owned() ) } diff --git a/src/librusti/rusti.rc b/src/librusti/rusti.rc index 6a54dc7de1020..e04cc9e389840 100644 --- a/src/librusti/rusti.rc +++ b/src/librusti/rusti.rc @@ -22,7 +22,6 @@ #[allow(vecs_implicitly_copyable, non_implicitly_copyable_typarams)]; -#[deny(deprecated_self)]; extern mod core(vers = "0.6"); extern mod std(vers = "0.6"); diff --git a/src/librustpkg/rustpkg.rc b/src/librustpkg/rustpkg.rc index 90d6fcbb8a533..2032969fbca6c 100644 --- a/src/librustpkg/rustpkg.rc +++ b/src/librustpkg/rustpkg.rc @@ -20,7 +20,6 @@ #[no_core]; #[allow(vecs_implicitly_copyable, non_implicitly_copyable_typarams)]; -#[deny(deprecated_self)]; extern mod core(vers = "0.6"); extern mod std(vers = "0.6"); diff --git a/src/libstd/std.rc b/src/libstd/std.rc index 85e914a60a140..fe7e0f2d8f27f 100644 --- a/src/libstd/std.rc +++ b/src/libstd/std.rc @@ -28,7 +28,6 @@ not required in or otherwise suitable for the core library. #[allow(vecs_implicitly_copyable)]; #[deny(non_camel_case_types)]; -#[deny(deprecated_self)]; #[allow(deprecated_mutable_fields)]; #[no_core]; From 29e8b6ea9b63c5cc1cd91cc5eb756820f7fe50b7 Mon Sep 17 00:00:00 2001 From: Huon Wilson Date: Mon, 25 Mar 2013 01:17:40 +1100 Subject: [PATCH 2/2] libcore: implement `str::each_char_reverse` correctly. Previously, `each_char_reverse` was not iterating at all, so the testcase never ran properly. --- src/libcore/str.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/libcore/str.rs b/src/libcore/str.rs index f26d9ee349264..92358c6a5e97b 100644 --- a/src/libcore/str.rs +++ b/src/libcore/str.rs @@ -1020,22 +1020,21 @@ pub fn each_chari(s: &str, it: &fn(uint, char) -> bool) { /// Iterates over the chars in a string in reverse #[inline(always)] pub fn each_char_reverse(s: &str, it: &fn(char) -> bool) { - let mut pos = 0; - let len = s.char_len(); - while pos > 0 { - let CharRange {ch, next} = char_range_at_reverse(s, pos); - pos = next; - if !it(ch) { break; } - } + each_chari_reverse(s, |_, c| it(c)) } // Iterates over the chars in a string in reverse, with indices #[inline(always)] pub fn each_chari_reverse(s: &str, it: &fn(uint, char) -> bool) { + let mut pos = s.len(); let mut ch_pos = s.char_len(); - for s.each_char_reverse |ch| { + while pos > 0 { + let CharRange {ch, next} = char_range_at_reverse(s, pos); + pos = next; ch_pos -= 1; + if !it(ch_pos, ch) { break; } + } } @@ -3661,10 +3660,10 @@ mod tests { fn test_each_char_reverse() { let s = ~"ศไทย中华Việt Nam"; let v = ~['ศ','ไ','ท','ย','中','华','V','i','ệ','t',' ','N','a','m']; - let mut pos = 0; + let mut pos = v.len(); for s.each_char_reverse |ch| { + pos -= 1; fail_unless!(ch == v[pos]); - pos += 1; } }