Skip to content

Commit 358a2d2

Browse files
committed
Don't let manually loading the built-in declarations happen until the references are properly loaded
1 parent 3a6ef0a commit 358a2d2

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

Rubberduck.Parsing/VBA/RubberduckParser.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,8 @@ private string GetReferenceProjectId(Reference reference, IReadOnlyList<VBProjec
360360

361361
private void SyncComReferences(IReadOnlyList<VBProject> projects)
362362
{
363+
var loadTasks = new List<Task>();
364+
363365
foreach (var vbProject in projects)
364366
{
365367
var projectId = QualifiedModuleName.GetProjectId(vbProject);
@@ -393,6 +395,7 @@ private void SyncComReferences(IReadOnlyList<VBProject> projects)
393395
{
394396
_state.OnStatusMessageUpdate(ParserState.LoadingReference.ToString());
395397

398+
loadTasks.Add(
396399
Task.Run(() =>
397400
{
398401
var comReflector = new ReferencedDeclarationsCollector(_state);
@@ -402,7 +405,7 @@ private void SyncComReferences(IReadOnlyList<VBProject> projects)
402405
{
403406
_state.AddDeclaration(declaration);
404407
}
405-
});
408+
}));
406409
map.IsLoaded = true;
407410
}
408411
}
@@ -426,6 +429,8 @@ private void SyncComReferences(IReadOnlyList<VBProject> projects)
426429
}
427430
}
428431

432+
Task.WaitAll(loadTasks.ToArray());
433+
429434
foreach (var reference in unmapped)
430435
{
431436
UnloadComReference(reference, projects);

0 commit comments

Comments
 (0)