@@ -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
@@ -1615,7 +1615,7 @@ namespace ts.server {
1615
1615
return ;
1616
1616
}
1617
1617
1618
- const projectOptions = project . projectKind === ProjectKind . Configured ? ( project as ConfiguredProject ) . projectOptions as ProjectOptions : undefined ;
1618
+ const projectOptions = isConfiguredProject ( project ) ? project . projectOptions as ProjectOptions : undefined ;
1619
1619
setProjectOptionsUsed ( project ) ;
1620
1620
const data : ProjectInfoTelemetryEventData = {
1621
1621
projectId : this . host . createSHA256Hash ( project . projectName ) ,
@@ -2389,8 +2389,8 @@ namespace ts.server {
2389
2389
2390
2390
// Add configured projects as referenced
2391
2391
originalScriptInfo . containingProjects . forEach ( project => {
2392
- if ( project . projectKind === ProjectKind . Configured ) {
2393
- addOriginalConfiguredProject ( project as ConfiguredProject ) ;
2392
+ if ( isConfiguredProject ( project ) ) {
2393
+ addOriginalConfiguredProject ( project ) ;
2394
2394
}
2395
2395
} ) ;
2396
2396
return originalLocation ;
@@ -2526,7 +2526,9 @@ namespace ts.server {
2526
2526
/*@internal */
2527
2527
loadAncestorAndReferenceConfiguredProjects ( forProjects : ReadonlyMap < Project > ) {
2528
2528
// Load all the projects ancestor projects for seen projects
2529
- this . configuredProjects . forEach ( project => {
2529
+ // Because the configured projects can update in the callback, get the copy to iterate
2530
+ const currentConfigProjects = arrayFrom ( this . configuredProjects . values ( ) ) ;
2531
+ currentConfigProjects . forEach ( project => {
2530
2532
if ( project . isInitialLoadPending ( ) &&
2531
2533
project . forEachProjectReference ( returnFalse , returnFalse , path => forProjects . has ( path ) ) ) {
2532
2534
// Load the project
0 commit comments