@@ -599,13 +599,7 @@ namespace ts {
599599 }
600600
601601 function processSourceFile ( fileName : string , isDefaultLib : boolean , refFile ?: SourceFile , refPos ?: number , refEnd ?: number ) {
602- let start : number ;
603- let length : number ;
604602 let diagnosticArgument : string [ ] ;
605- if ( refEnd !== undefined && refPos !== undefined ) {
606- start = refPos ;
607- length = refEnd - refPos ;
608- }
609603 let diagnostic : DiagnosticMessage ;
610604 if ( hasExtension ( fileName ) ) {
611605 if ( ! options . allowNonTsExtensions && ! forEach ( supportedExtensions , extension => fileExtensionIs ( host . getCanonicalFileName ( fileName ) , extension ) ) ) {
@@ -637,8 +631,8 @@ namespace ts {
637631 }
638632
639633 if ( diagnostic ) {
640- if ( refFile ) {
641- diagnostics . add ( createFileDiagnostic ( refFile , start , length , diagnostic , ...diagnosticArgument ) ) ;
634+ if ( refFile !== undefined && refEnd !== undefined && refPos !== undefined ) {
635+ diagnostics . add ( createFileDiagnostic ( refFile , refPos , refEnd - refPos , diagnostic , ...diagnosticArgument ) ) ;
642636 }
643637 else {
644638 diagnostics . add ( createCompilerDiagnostic ( diagnostic , ...diagnosticArgument ) ) ;
@@ -647,7 +641,7 @@ namespace ts {
647641 }
648642
649643 // Get source file from normalized fileName
650- function findSourceFile ( fileName : string , isDefaultLib : boolean , refFile ?: SourceFile , refStart ?: number , refLength ?: number ) : SourceFile {
644+ function findSourceFile ( fileName : string , isDefaultLib : boolean , refFile ?: SourceFile , refPos ?: number , refEnd ?: number ) : SourceFile {
651645 let canonicalName = host . getCanonicalFileName ( normalizeSlashes ( fileName ) ) ;
652646 if ( filesByName . contains ( canonicalName ) ) {
653647 // We've already looked for this file, use cached result
@@ -662,8 +656,8 @@ namespace ts {
662656
663657 // We haven't looked for this file, do so now and cache result
664658 let file = host . getSourceFile ( fileName , options . target , hostErrorMessage => {
665- if ( refFile ) {
666- diagnostics . add ( createFileDiagnostic ( refFile , refStart , refLength ,
659+ if ( refFile !== undefined && refPos !== undefined && refEnd !== undefined ) {
660+ diagnostics . add ( createFileDiagnostic ( refFile , refPos , refEnd - refPos ,
667661 Diagnostics . Cannot_read_file_0_Colon_1 , fileName , hostErrorMessage ) ) ;
668662 }
669663 else {
@@ -699,8 +693,13 @@ namespace ts {
699693 if ( file && host . useCaseSensitiveFileNames ( ) ) {
700694 let sourceFileName = useAbsolutePath ? getNormalizedAbsolutePath ( file . fileName , host . getCurrentDirectory ( ) ) : file . fileName ;
701695 if ( canonicalName !== sourceFileName ) {
702- diagnostics . add ( createFileDiagnostic ( refFile , refStart , refLength ,
703- Diagnostics . File_name_0_differs_from_already_included_file_name_1_only_in_casing , fileName , sourceFileName ) ) ;
696+ if ( refFile !== undefined && refPos !== undefined && refEnd !== undefined ) {
697+ diagnostics . add ( createFileDiagnostic ( refFile , refPos , refEnd - refPos ,
698+ Diagnostics . File_name_0_differs_from_already_included_file_name_1_only_in_casing , fileName , sourceFileName ) ) ;
699+ }
700+ else {
701+ diagnostics . add ( createCompilerDiagnostic ( Diagnostics . File_name_0_differs_from_already_included_file_name_1_only_in_casing , fileName , sourceFileName ) ) ;
702+ }
704703 }
705704 }
706705 return file ;
@@ -737,7 +736,7 @@ namespace ts {
737736 return ;
738737
739738 function findModuleSourceFile ( fileName : string , nameLiteral : Expression ) {
740- return findSourceFile ( fileName , /* isDefaultLib */ false , file , nameLiteral . pos , nameLiteral . end - nameLiteral . pos ) ;
739+ return findSourceFile ( fileName , /* isDefaultLib */ false , file , nameLiteral . pos , nameLiteral . end ) ;
741740 }
742741 }
743742
0 commit comments