diff options
| author | Pietro Albini <pietro.albini@ferrous-systems.com> | 2023-04-14 12:09:57 +0200 |
|---|---|---|
| committer | Pietro Albini <pietro.albini@ferrous-systems.com> | 2023-04-14 12:09:57 +0200 |
| commit | 0f364ac3821a58411407f2fd1547ae823f8f0143 (patch) | |
| tree | 1be473700b3db52b74c48fbb059bf38d11fd4ffd /src | |
| parent | 741a0ec8429424e10689a1da24820bc4c84f1bcc (diff) | |
| download | rust-0f364ac3821a58411407f2fd1547ae823f8f0143.tar.gz rust-0f364ac3821a58411407f2fd1547ae823f8f0143.zip | |
add line numbers to error messages
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index a83cf33589f..91a23776de7 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -35,7 +35,7 @@ impl EarlyProps { pub fn from_reader<R: Read>(config: &Config, testfile: &Path, rdr: R) -> Self { let mut props = EarlyProps::default(); - iter_header(testfile, rdr, &mut |_, ln| { + iter_header(testfile, rdr, &mut |_, ln, _| { config.push_name_value_directive(ln, directives::AUX_BUILD, &mut props.aux, |r| { r.trim().to_string() }); @@ -283,7 +283,7 @@ impl TestProps { if !testfile.is_dir() { let file = File::open(testfile).unwrap(); - iter_header(testfile, file, &mut |revision, ln| { + iter_header(testfile, file, &mut |revision, ln, _| { if revision.is_some() && revision != cfg { return; } @@ -577,7 +577,7 @@ pub fn line_directive<'line>( } } -fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>, &str)) { +fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>, &str, usize)) { if testfile.is_dir() { return; } @@ -586,8 +586,10 @@ fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str> let mut rdr = BufReader::new(rdr); let mut ln = String::new(); + let mut line_number = 0; loop { + line_number += 1; ln.clear(); if rdr.read_line(&mut ln).unwrap() == 0 { break; @@ -600,7 +602,7 @@ fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str> if ln.starts_with("fn") || ln.starts_with("mod") { return; } else if let Some((lncfg, ln)) = line_directive(comment, ln) { - it(lncfg, ln); + it(lncfg, ln, line_number); } } } @@ -859,7 +861,7 @@ pub fn make_test_description<R: Read>( let needs_cache = needs::CachedNeedsConditions::load(config); - iter_header(path, src, &mut |revision, ln| { + iter_header(path, src, &mut |revision, ln, line_number| { if revision.is_some() && revision != cfg { return; } @@ -875,7 +877,7 @@ pub fn make_test_description<R: Read>( ignore_message = Some(&*Box::leak(Box::<str>::from(reason))); } IgnoreDecision::Error { message } => { - eprintln!("error: {}: {message}", path.display()); + eprintln!("error: {}:{line_number}: {message}", path.display()); *poisoned = true; return; } |
