Skip to content

Commit 1dec1c8

Browse files
committed
make scanning more efficient by avoiding recomputation
1 parent 70c808d commit 1dec1c8

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/compiletest/runtest.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,10 @@ fn check_expected_errors(expected_errors: [errors::expected_error],
240240
fatal("process did not return an error status");
241241
}
242242

243+
let prefixes = vec::map(expected_errors, {|ee|
244+
#fmt("%s:%u:", testfile, ee.line)
245+
});
246+
243247
// Scan and extract our error/warning messages,
244248
// which look like:
245249
// filename:line1:col1: line2:col2: *error:* msg
@@ -250,10 +254,9 @@ fn check_expected_errors(expected_errors: [errors::expected_error],
250254
let was_expected = false;
251255
vec::iteri(expected_errors) {|i, ee|
252256
if !found_flags[i] {
253-
let needle = #fmt("%s:%u:", testfile, ee.line);
254-
#debug["needle=%s ee.kind=%s ee.msg=%s line=%s",
255-
needle, ee.kind, ee.msg, line];
256-
if (str::contains(line, needle) &&
257+
#debug["prefix=%s ee.kind=%s ee.msg=%s line=%s",
258+
prefixes[i], ee.kind, ee.msg, line];
259+
if (str::starts_with(line, prefixes[i]) &&
257260
str::contains(line, ee.kind) &&
258261
str::contains(line, ee.msg)) {
259262
found_flags[i] = true;

0 commit comments

Comments
 (0)