@@ -805,17 +805,9 @@ namespace ts.server {
805805
806806 /* @internal */
807807 getFileNamesWithRedirectInfo ( includeProjectReferenceRedirectInfo : boolean ) {
808- const fileNames = this . getFileNames ( ) ;
809- if ( includeProjectReferenceRedirectInfo ) {
810- return fileNames . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
811- fileName,
812- isSourceOfProjectReferenceRedirect : this . isSourceOfProjectReferenceRedirect ( fileName )
813- } ) ) ;
814- }
815-
816- return fileNames . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
808+ return this . getFileNames ( ) . map ( ( fileName ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
817809 fileName,
818- isSourceOfProjectReferenceRedirect : false
810+ isSourceOfProjectReferenceRedirect : includeProjectReferenceRedirectInfo && this . isSourceOfProjectReferenceRedirect ( fileName )
819811 } ) ) ;
820812 }
821813
@@ -1319,9 +1311,9 @@ namespace ts.server {
13191311 getChangesSinceVersion ( lastKnownVersion ?: number , includeProjectReferenceRedirectInfo ?: boolean ) : ProjectFilesWithTSDiagnostics {
13201312 const includeProjectReferenceRedirectInfoIfRequested =
13211313 includeProjectReferenceRedirectInfo
1322- ? ( files : Map < boolean > ) => arrayFrom ( files . keys ( ) , ( fileName : string ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
1314+ ? ( files : Map < boolean > ) => arrayFrom ( files . entries ( ) , ( [ fileName , isSourceOfProjectReferenceRedirect ] ) : protocol . FileWithProjectReferenceRedirectInfo => ( {
13231315 fileName,
1324- isSourceOfProjectReferenceRedirect : files . get ( fileName ) ! // fileName guaranteed to be in files
1316+ isSourceOfProjectReferenceRedirect
13251317 } ) )
13261318 : ( files : Map < boolean > ) => arrayFrom ( files . keys ( ) ) ;
13271319
@@ -1364,20 +1356,20 @@ namespace ts.server {
13641356 const updated : string [ ] = updatedFileNames ? arrayFrom ( updatedFileNames . keys ( ) ) : [ ] ;
13651357 const updatedRedirects : protocol . FileWithProjectReferenceRedirectInfo [ ] = [ ] ;
13661358
1367- forEachKey ( currentFiles , id => {
1368- if ( ! lastReportedFileNames . has ( id ) ) {
1369- added . set ( id , currentFiles . get ( id ) ! ) ; // id guaranteed to be in currentFiles
1359+ forEachEntry ( currentFiles , ( isSourceOfProjectReferenceRedirect , fileName ) => {
1360+ if ( ! lastReportedFileNames . has ( fileName ) ) {
1361+ added . set ( fileName , isSourceOfProjectReferenceRedirect ) ;
13701362 }
1371- else if ( includeProjectReferenceRedirectInfo && lastReportedFileNames . get ( id ) !== currentFiles . get ( id ) ) {
1363+ else if ( includeProjectReferenceRedirectInfo && isSourceOfProjectReferenceRedirect !== lastReportedFileNames . get ( fileName ) ) {
13721364 updatedRedirects . push ( {
1373- fileName : id ,
1374- isSourceOfProjectReferenceRedirect : currentFiles . get ( id ) ! // id guaranteed to be in currentFiles
1365+ fileName,
1366+ isSourceOfProjectReferenceRedirect
13751367 } ) ;
13761368 }
13771369 } ) ;
1378- forEachKey ( lastReportedFileNames , id => {
1379- if ( ! currentFiles . has ( id ) ) {
1380- removed . set ( id , lastReportedFileNames . get ( id ) ! ) ; // id guaranteed to be in lastReportedFileNames
1370+ forEachEntry ( lastReportedFileNames , ( isSourceOfProjectReferenceRedirect , fileName ) => {
1371+ if ( ! currentFiles . has ( fileName ) ) {
1372+ removed . set ( fileName , isSourceOfProjectReferenceRedirect ) ;
13811373 }
13821374 } ) ;
13831375 this . lastReportedFileNames = currentFiles ;
@@ -1407,7 +1399,7 @@ namespace ts.server {
14071399 } ) ) ;
14081400 const allFiles = projectFileNames . concat ( externalFiles ) ;
14091401 this . lastReportedFileNames = arrayToMap (
1410- projectFileNames . concat ( externalFiles ) ,
1402+ allFiles ,
14111403 info => info . fileName ,
14121404 info => info . isSourceOfProjectReferenceRedirect
14131405 ) ;
0 commit comments