@@ -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