diff options
| author | bors <bors@rust-lang.org> | 2014-05-14 19:31:52 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-05-14 19:31:52 -0700 |
| commit | e10fd317211511c3fb4656aee10eb4fd17dc8586 (patch) | |
| tree | 751c444f333d465d11aa20ae6bbd377755bf8aa3 /src/libhexfloat | |
| parent | 2a7a39191a83fc2a63df6cb47acd344ae669d9c7 (diff) | |
| parent | 351a564df5d62175696a1f87c40629f212f1ee1e (diff) | |
| download | rust-e10fd317211511c3fb4656aee10eb4fd17dc8586.tar.gz rust-e10fd317211511c3fb4656aee10eb4fd17dc8586.zip | |
auto merge of #14170 : pcwalton/rust/detildestr-misclibs, r=alexcrichton
r? @brson
Diffstat (limited to 'src/libhexfloat')
| -rw-r--r-- | src/libhexfloat/lib.rs | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/libhexfloat/lib.rs b/src/libhexfloat/lib.rs index ac64f04c6fd..dda14fb10af 100644 --- a/src/libhexfloat/lib.rs +++ b/src/libhexfloat/lib.rs @@ -70,30 +70,39 @@ pub fn macro_registrar(register: |Name, SyntaxExtension|) { //Check if the literal is valid (as LLVM expects), //and return a descriptive error if not. -fn hex_float_lit_err(s: &str) -> Option<(uint, ~str)> { +fn hex_float_lit_err(s: &str) -> Option<(uint, StrBuf)> { let mut chars = s.chars().peekable(); let mut i = 0; if chars.peek() == Some(&'-') { chars.next(); i+= 1 } - if chars.next() != Some('0') { return Some((i, "Expected '0'".to_owned())); } i+=1; - if chars.next() != Some('x') { return Some((i, "Expected 'x'".to_owned())); } i+=1; + if chars.next() != Some('0') { + return Some((i, "Expected '0'".to_strbuf())); + } i+=1; + if chars.next() != Some('x') { + return Some((i, "Expected 'x'".to_strbuf())); + } i+=1; let mut d_len = 0; for _ in chars.take_while(|c| c.is_digit_radix(16)) { chars.next(); i+=1; d_len += 1;} - if chars.next() != Some('.') { return Some((i, "Expected '.'".to_owned())); } i+=1; + if chars.next() != Some('.') { + return Some((i, "Expected '.'".to_strbuf())); + } i+=1; let mut f_len = 0; for _ in chars.take_while(|c| c.is_digit_radix(16)) { chars.next(); i+=1; f_len += 1;} if d_len == 0 && f_len == 0 { - return Some((i, "Expected digits before or after decimal point".to_owned())); + return Some((i, "Expected digits before or after decimal \ + point".to_strbuf())); } - if chars.next() != Some('p') { return Some((i, "Expected 'p'".to_owned())); } i+=1; + if chars.next() != Some('p') { + return Some((i, "Expected 'p'".to_strbuf())); + } i+=1; if chars.peek() == Some(&'-') { chars.next(); i+= 1 } let mut e_len = 0; for _ in chars.take_while(|c| c.is_digit()) { chars.next(); i+=1; e_len += 1} if e_len == 0 { - return Some((i, "Expected exponent digits".to_owned())); + return Some((i, "Expected exponent digits".to_strbuf())); } match chars.next() { None => None, - Some(_) => Some((i, "Expected end of string".to_owned())) + Some(_) => Some((i, "Expected end of string".to_strbuf())) } } |
