diff --git a/library/core/src/char/methods.rs b/library/core/src/char/methods.rs index 2baea7842a7..e450240527a 100644 --- a/library/core/src/char/methods.rs +++ b/library/core/src/char/methods.rs @@ -330,8 +330,6 @@ impl char { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub fn to_digit(self, radix: u32) -> Option { - assert!(radix <= 36, "to_digit: radix is too high (maximum 36)"); - // the code is split up here to improve execution speed for cases where // the `radix` is constant and 10 or smaller let val = if radix <= 10 { @@ -340,6 +338,8 @@ impl char { _ => return None, } } else { + assert!(radix <= 36, "to_digit: radix is too high (maximum 36)"); + match self { '0'..='9' => self as u32 - '0' as u32, 'a'..='z' => self as u32 - 'a' as u32 + 10,