@@ -455,35 +455,32 @@ impl SourceMap {
455455 span
456456 }
457457
458- fn filepath ( & self , span : Span ) -> String {
458+ fn find ( & self , span : Span ) -> usize {
459459 for ( i, file) in self . files . iter ( ) . enumerate ( ) {
460460 if file. span_within ( span) {
461- return if i == 0 {
462- "<unspecified>" . to_owned ( )
463- } else {
464- format ! ( "<parsed string {}>" , i)
465- } ;
461+ return i;
466462 }
467463 }
468464 unreachable ! ( "Invalid span with no related FileInfo!" ) ;
469465 }
470466
471- fn fileinfo ( & self , span : Span ) -> & FileInfo {
472- for file in & self . files {
473- if file. span_within ( span) {
474- return file;
475- }
467+ fn filepath ( & self , span : Span ) -> String {
468+ let i = self . find ( span) ;
469+ if i == 0 {
470+ "<unspecified>" . to_owned ( )
471+ } else {
472+ format ! ( "<parsed string {}>" , i)
476473 }
477- unreachable ! ( "Invalid span with no related FileInfo!" ) ;
474+ }
475+
476+ fn fileinfo ( & self , span : Span ) -> & FileInfo {
477+ let i = self . find ( span) ;
478+ & self . files [ i]
478479 }
479480
480481 fn fileinfo_mut ( & mut self , span : Span ) -> & mut FileInfo {
481- for file in & mut self . files {
482- if file. span_within ( span) {
483- return file;
484- }
485- }
486- unreachable ! ( "Invalid span with no related FileInfo!" ) ;
482+ let i = self . find ( span) ;
483+ & mut self . files [ i]
487484 }
488485}
489486
0 commit comments