about summary refs log tree commit diff
path: root/src/compiletest/errors.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-05-14 20:47:24 -0700
committerPatrick Walton <pcwalton@mimiga.net>2014-05-16 11:41:26 -0700
commit78bc758c94ae9c99b8e4e82f7d18b6733c8eb949 (patch)
treef6d747176f2a08a0cd123adfadef4c3f215c6b4c /src/compiletest/errors.rs
parentbbd034c3a6e0325da0cb743cab007d69a736557a (diff)
downloadrust-78bc758c94ae9c99b8e4e82f7d18b6733c8eb949.tar.gz
rust-78bc758c94ae9c99b8e4e82f7d18b6733c8eb949.zip
compiletest: Remove all uses of `~str` from `compiletest`
Diffstat (limited to 'src/compiletest/errors.rs')
-rw-r--r--src/compiletest/errors.rs42
1 files changed, 26 insertions, 16 deletions
diff --git a/src/compiletest/errors.rs b/src/compiletest/errors.rs
index 9300cee432f..4e65115caa2 100644
--- a/src/compiletest/errors.rs
+++ b/src/compiletest/errors.rs
@@ -12,8 +12,8 @@ use std::io::{BufferedReader, File};
 
 pub struct ExpectedError {
     pub line: uint,
-    pub kind: ~str,
-    pub msg: ~str,
+    pub kind: StrBuf,
+    pub msg: StrBuf,
 }
 
 // Load any test directives embedded in the file
@@ -23,17 +23,18 @@ pub fn load_errors(testfile: &Path) -> Vec<ExpectedError> {
     let mut rdr = BufferedReader::new(File::open(testfile).unwrap());
     let mut line_num = 1u;
     for ln in rdr.lines() {
-        error_patterns.push_all_move(parse_expected(line_num, ln.unwrap()));
+        error_patterns.push_all_move(parse_expected(line_num,
+                                                    ln.unwrap().to_strbuf()));
         line_num += 1u;
     }
     return error_patterns;
 }
 
-fn parse_expected(line_num: uint, line: ~str) -> Vec<ExpectedError> {
-    let line = line.trim();
-    let error_tag = "//~".to_owned();
+fn parse_expected(line_num: uint, line: StrBuf) -> Vec<ExpectedError> {
+    let line = line.as_slice().trim().to_strbuf();
+    let error_tag = "//~".to_strbuf();
     let mut idx;
-    match line.find_str(error_tag) {
+    match line.as_slice().find_str(error_tag.as_slice()) {
       None => return Vec::new(),
       Some(nn) => { idx = (nn as uint) + error_tag.len(); }
     }
@@ -42,25 +43,34 @@ fn parse_expected(line_num: uint, line: ~str) -> Vec<ExpectedError> {
     // three lines above current line:
     let mut adjust_line = 0u;
     let len = line.len();
-    while idx < len && line[idx] == ('^' as u8) {
+    while idx < len && line.as_slice()[idx] == ('^' as u8) {
         adjust_line += 1u;
         idx += 1u;
     }
 
     // Extract kind:
-    while idx < len && line[idx] == (' ' as u8) { idx += 1u; }
+    while idx < len && line.as_slice()[idx] == (' ' as u8) {
+        idx += 1u;
+    }
     let start_kind = idx;
-    while idx < len && line[idx] != (' ' as u8) { idx += 1u; }
+    while idx < len && line.as_slice()[idx] != (' ' as u8) {
+        idx += 1u;
+    }
 
-    let kind = line.slice(start_kind, idx);
-    let kind = kind.to_ascii().to_lower().into_str();
+    let kind = line.as_slice().slice(start_kind, idx);
+    let kind = kind.to_ascii().to_lower().into_str().to_strbuf();
 
     // Extract msg:
-    while idx < len && line[idx] == (' ' as u8) { idx += 1u; }
-    let msg = line.slice(idx, len).to_owned();
+    while idx < len && line.as_slice()[idx] == (' ' as u8) {
+        idx += 1u;
+    }
+    let msg = line.as_slice().slice(idx, len).to_strbuf();
 
     debug!("line={} kind={} msg={}", line_num - adjust_line, kind, msg);
 
-    return vec!(ExpectedError{line: line_num - adjust_line, kind: kind,
-                           msg: msg});
+    return vec!(ExpectedError{
+        line: line_num - adjust_line,
+        kind: kind,
+        msg: msg,
+    });
 }