@@ -410,8 +410,8 @@ namespace ts.server {
410
410
}
411
411
412
412
function setProjectOptionsUsed ( project : ConfiguredProject | ExternalProject ) {
413
- if ( project . projectKind === ProjectKind . Configured ) {
414
- ( project as ConfiguredProject ) . projectOptions = true ;
413
+ if ( isConfiguredProject ( project ) ) {
414
+ project . projectOptions = true ;
415
415
}
416
416
}
417
417
@@ -1606,7 +1606,7 @@ namespace ts.server {
1606
1606
return ;
1607
1607
}
1608
1608
1609
- const projectOptions = project . projectKind === ProjectKind . Configured ? ( project as ConfiguredProject ) . projectOptions as ProjectOptions : undefined ;
1609
+ const projectOptions = isConfiguredProject ( project ) ? project . projectOptions as ProjectOptions : undefined ;
1610
1610
setProjectOptionsUsed ( project ) ;
1611
1611
const data : ProjectInfoTelemetryEventData = {
1612
1612
projectId : this . host . createSHA256Hash ( project . projectName ) ,
@@ -2399,8 +2399,8 @@ namespace ts.server {
2399
2399
2400
2400
// Add configured projects as referenced
2401
2401
originalScriptInfo . containingProjects . forEach ( project => {
2402
- if ( project . projectKind === ProjectKind . Configured ) {
2403
- addOriginalConfiguredProject ( project as ConfiguredProject ) ;
2402
+ if ( isConfiguredProject ( project ) ) {
2403
+ addOriginalConfiguredProject ( project ) ;
2404
2404
}
2405
2405
} ) ;
2406
2406
return originalLocation ;
@@ -2536,7 +2536,9 @@ namespace ts.server {
2536
2536
/*@internal */
2537
2537
loadAncestorAndReferenceConfiguredProjects ( forProjects : ReadonlyMap < Project > ) {
2538
2538
// Load all the projects ancestor projects for seen projects
2539
- this . configuredProjects . forEach ( project => {
2539
+ // Because the configured projects can update in the callback, get the copy to iterate
2540
+ const currentConfigProjects = arrayFrom ( this . configuredProjects . values ( ) ) ;
2541
+ currentConfigProjects . forEach ( project => {
2540
2542
if ( project . isInitialLoadPending ( ) &&
2541
2543
project . forEachProjectReference ( returnFalse , returnFalse , path => forProjects . has ( path ) ) ) {
2542
2544
// Load the project
0 commit comments