Skip to content

Commit

Permalink
remove built-in declarations for removed references
Browse files Browse the repository at this point in the history
  • Loading branch information
retailcoder committed Apr 21, 2016
1 parent 8d73919 commit 6791992
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions Rubberduck.Parsing/VBA/RubberduckParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void Parse()
var components = projects.SelectMany(p => p.VBComponents.Cast<VBComponent>()).ToList();
_state.SetModuleState(ParserState.LoadingReference);

LoadComReferences(projects);
SyncComReferences(projects);

foreach (var component in components)
{
Expand Down Expand Up @@ -138,7 +138,7 @@ private void ParseAll()
var unchanged = components.Where(c => !_state.IsModified(c)).ToList();

_state.SetModuleState(ParserState.LoadingReference); // todo: change that to a simple statusbar text update
LoadComReferences(projects);
SyncComReferences(projects);

if (!modified.Any())
{
Expand Down Expand Up @@ -168,7 +168,7 @@ private void ParseAll()

private readonly HashSet<ReferencePriorityMap> _references = new HashSet<ReferencePriorityMap>();

private void LoadComReferences(IEnumerable<VBProject> projects)
private void SyncComReferences(IReadOnlyList<VBProject> projects)
{
foreach (var vbProject in projects)
{
Expand Down Expand Up @@ -200,9 +200,17 @@ private void LoadComReferences(IEnumerable<VBProject> projects)
}
}
}

var mappedIds = _references.Select(map => map.ReferenceId);
var unmapped = projects.SelectMany(project => project.References.Cast<Reference>())
.Where(reference => !mappedIds.Contains(reference.ReferenceId()));
foreach (var reference in unmapped)
{
UnloadComReference(reference);
}
}

public void UnloadComReference(Reference reference)
private void UnloadComReference(Reference reference)
{
var referenceId = reference.ReferenceId();
var map = _references.SingleOrDefault(r => r.ReferenceId == referenceId);
Expand Down

0 comments on commit 6791992

Please sign in to comment.