Skip to content

Commit 0f364ac

Browse files
committed
add line numbers to error messages
1 parent 741a0ec commit 0f364ac

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/tools/compiletest/src/header.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ impl EarlyProps {
3535

3636
pub fn from_reader<R: Read>(config: &Config, testfile: &Path, rdr: R) -> Self {
3737
let mut props = EarlyProps::default();
38-
iter_header(testfile, rdr, &mut |_, ln| {
38+
iter_header(testfile, rdr, &mut |_, ln, _| {
3939
config.push_name_value_directive(ln, directives::AUX_BUILD, &mut props.aux, |r| {
4040
r.trim().to_string()
4141
});
@@ -283,7 +283,7 @@ impl TestProps {
283283
if !testfile.is_dir() {
284284
let file = File::open(testfile).unwrap();
285285

286-
iter_header(testfile, file, &mut |revision, ln| {
286+
iter_header(testfile, file, &mut |revision, ln, _| {
287287
if revision.is_some() && revision != cfg {
288288
return;
289289
}
@@ -577,7 +577,7 @@ pub fn line_directive<'line>(
577577
}
578578
}
579579

580-
fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>, &str)) {
580+
fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>, &str, usize)) {
581581
if testfile.is_dir() {
582582
return;
583583
}
@@ -586,8 +586,10 @@ fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>
586586

587587
let mut rdr = BufReader::new(rdr);
588588
let mut ln = String::new();
589+
let mut line_number = 0;
589590

590591
loop {
592+
line_number += 1;
591593
ln.clear();
592594
if rdr.read_line(&mut ln).unwrap() == 0 {
593595
break;
@@ -600,7 +602,7 @@ fn iter_header<R: Read>(testfile: &Path, rdr: R, it: &mut dyn FnMut(Option<&str>
600602
if ln.starts_with("fn") || ln.starts_with("mod") {
601603
return;
602604
} else if let Some((lncfg, ln)) = line_directive(comment, ln) {
603-
it(lncfg, ln);
605+
it(lncfg, ln, line_number);
604606
}
605607
}
606608
}
@@ -859,7 +861,7 @@ pub fn make_test_description<R: Read>(
859861

860862
let needs_cache = needs::CachedNeedsConditions::load(config);
861863

862-
iter_header(path, src, &mut |revision, ln| {
864+
iter_header(path, src, &mut |revision, ln, line_number| {
863865
if revision.is_some() && revision != cfg {
864866
return;
865867
}
@@ -875,7 +877,7 @@ pub fn make_test_description<R: Read>(
875877
ignore_message = Some(&*Box::leak(Box::<str>::from(reason)));
876878
}
877879
IgnoreDecision::Error { message } => {
878-
eprintln!("error: {}: {message}", path.display());
880+
eprintln!("error: {}:{line_number}: {message}", path.display());
879881
*poisoned = true;
880882
return;
881883
}

0 commit comments

Comments
 (0)