public RemoveBuiltInDeclarations ( System.Reference reference ) : void | ||
reference | System.Reference | |
return | void |
private void UnloadComReference(IReference reference, IReadOnlyList <IVBProject> projects) { var referencedProjectId = GetReferenceProjectId(reference, projects); ReferencePriorityMap map = null; try { map = _projectReferences.SingleOrDefault(item => item.ReferencedProjectId == referencedProjectId); } catch (InvalidOperationException exception) { //There are multiple maps with the same referencedProjectId. That should not happen. (ghost?). Logger.Error(exception, "Failed To unload com reference with referencedProjectID {0} because RD stores multiple instances of it.", referencedProjectId); return; } if (map == null || !map.IsLoaded) { Logger.Warn("Tried to unload untracked project reference."); //This shouldn't happen. return; } map.Remove(referencedProjectId); if (map.Count == 0) { AddUnloadedReferenceToUnloadedReferences(reference); _projectReferences.Remove(map); _state.RemoveBuiltInDeclarations(reference); } }
private void UnloadComReference(Reference reference, IReadOnlyList <VBProject> projects) { var referencedProjectId = GetReferenceProjectId(reference, projects); ReferencePriorityMap map = null; foreach (var item in _projectReferences) { if (item.ReferencedProjectId == referencedProjectId) { map = map != null ? null : item; } } if (map == null || !map.IsLoaded) { // we're removing a reference we weren't tracking? ...this shouldn't happen. Debug.Assert(false); return; } map.Remove(referencedProjectId); if (map.Count == 0) { _projectReferences.Remove(map); _state.RemoveBuiltInDeclarations(reference); } }