From 26b54cc17e13e3d784d3f25bdbe500ec18cefd7b Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Thu, 15 Mar 2012 15:29:19 -0700 Subject: [PATCH] Add asserts to char::is_upper and char::is_lower Add an assert that the argument char is ASCII, as well as adding issue numbers to FIXMEs --- src/libcore/char.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/libcore/char.rs b/src/libcore/char.rs index a06669dfe03..ad9b7388d6e 100644 --- a/src/libcore/char.rs +++ b/src/libcore/char.rs @@ -123,10 +123,11 @@ pure fn to_digit(c: char, radix: uint) -> option { } /* - FIXME: works only on ASCII + FIXME: works only on ASCII (Issue #1985) */ #[doc = "Convert a char to the corresponding lower case."] pure fn to_lower(c: char) -> char { + assert is_ascii(c); alt c { 'A' to 'Z' { ((c as u8) + 32u8) as char } _ { c } @@ -134,10 +135,11 @@ pure fn to_lower(c: char) -> char { } /* - FIXME: works only on ASCII + FIXME: works only on ASCII (Issue 1985) */ #[doc = "Convert a char to the corresponding upper case."] pure fn to_upper(c: char) -> char { + assert is_ascii(c); alt c { 'a' to 'z' { ((c as u8) - 32u8) as char } _ { c } @@ -208,16 +210,18 @@ fn test_to_digit() { fn test_to_lower() { assert (to_lower('H') == 'h'); assert (to_lower('e') == 'e'); + // non-ASCII, shouldn't work (see earlier FIXME) //assert (to_lower('Ö') == 'ö'); - assert (to_lower('ß') == 'ß'); + //assert (to_lower('ß') == 'ß'); } #[test] fn test_to_upper() { assert (to_upper('l') == 'L'); assert (to_upper('Q') == 'Q'); + // non-ASCII, shouldn't work (see earlier FIXME) //assert (to_upper('ü') == 'Ü'); - assert (to_upper('ß') == 'ß'); + //assert (to_upper('ß') == 'ß'); } #[test]