Skip to content

Commit 6df939d

Browse files
authored
Merge pull request #4378 from retailcoder/pull4238b
COM Wrapper Analyzer
2 parents 49d5bfb + dbc87a0 commit 6df939d

24 files changed

+285
-27
lines changed

Rubberduck.CodeAnalysis/Inspections/Concrete/ObsoleteCallStatementInspection.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
3030
foreach (var context in Listener.Contexts.Where(context => !IsIgnoringInspectionResultFor(context.ModuleName, context.Context.Start.Line)))
3131
{
3232
string lines;
33-
using (var module = State.ProjectsProvider.Component(context.ModuleName).CodeModule)
33+
var component = State.ProjectsProvider.Component(context.ModuleName);
34+
using (var module = component.CodeModule)
3435
{
3536
lines = module.GetLines(context.Context.Start.Line,
3637
context.Context.Stop.Line - context.Context.Start.Line + 1);

Rubberduck.CodeAnalysis/QuickFixes/IgnoreOnceQuickFix.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,9 @@ public override void Fix(IInspectionResult result)
3131
var annotationText = $"'@Ignore {result.Inspection.AnnotationName}";
3232

3333
int annotationLine;
34-
using (var module = _state.ProjectsProvider.Component(result.QualifiedSelection.QualifiedName).CodeModule)
34+
string codeLine;
35+
var component = _state.ProjectsProvider.Component(result.QualifiedSelection.QualifiedName);
36+
using (var module = component.CodeModule)
3537
{
3638
annotationLine = result.QualifiedSelection.Selection.StartLine;
3739
while (annotationLine != 1 && module.GetLines(annotationLine - 1, 1).EndsWith(" _"))

Rubberduck.Core/Navigation/CodeExplorer/CodeExplorerComponentViewModel.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ public CodeExplorerComponentViewModel(CodeExplorerItemViewModel parent, Declarat
110110

111111
private bool ContainsBuiltinDocumentPropertiesProperty()
112112
{
113-
using (var properties = _projectsProvider.Component(Declaration.QualifiedName.QualifiedModuleName).Properties)
113+
var component = _projectsProvider.Component(Declaration.QualifiedName.QualifiedModuleName);
114+
using (var properties = component.Properties)
114115
{
115116
return properties.Any(item => item.Name == "BuiltinDocumentProperties");
116117
}

Rubberduck.Core/Navigation/RegexSearchReplace/RegexSearchReplace.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ private IEnumerable<RegexSearchResult> GetResultsFromModule(ICodeModule module,
8989

9090
private void SetSelection(RegexSearchResult item)
9191
{
92-
item.Module.CodePane.Selection = item.Selection;
92+
var module = item.Module;
93+
using (var codePane = module.CodePane)
94+
{
95+
codePane.Selection = item.Selection;
96+
}
9397
}
9498

9599
private List<RegexSearchResult> SearchSelection(string searchPattern)

Rubberduck.Core/UI/CodeExplorer/Commands/PrintCommand.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ protected override bool EvaluateCanExecute(object parameter)
3333

3434
try
3535
{
36-
using (var codeModule = _projectsProvider.Component(node.Declaration.QualifiedName.QualifiedModuleName).CodeModule)
36+
var component = _projectsProvider.Component(node.Declaration.QualifiedName.QualifiedModuleName);
37+
using (var codeModule = component.CodeModule)
3738
{
3839
return codeModule.CountOfLines != 0;
3940
}
@@ -54,7 +55,8 @@ protected override void OnExecute(object parameter)
5455
qualifiedComponentName.ComponentName + ".txt");
5556

5657
List<string> text;
57-
using (var codeModule = _projectsProvider.Component(qualifiedComponentName).CodeModule)
58+
var component = _projectsProvider.Component(qualifiedComponentName);
59+
using (var codeModule = component.CodeModule)
5860
{
5961
text = codeModule.GetLines(1, codeModule.CountOfLines)
6062
.Split(new[] {Environment.NewLine}, StringSplitOptions.None).ToList();

Rubberduck.Core/UI/Command/FindAllImplementationsCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,8 @@ private SearchResultsViewModel CreateViewModel(Declaration target)
188188

189189
private string GetModuleLine(QualifiedModuleName module, int line)
190190
{
191-
using (var codeModule = _state.ProjectsProvider.Component(module).CodeModule)
191+
var component = _state.ProjectsProvider.Component(module);
192+
using (var codeModule = component.CodeModule)
192193
{
193194
return codeModule.GetLines(line, 1).Trim();
194195
}

Rubberduck.Core/UI/Command/FindAllReferencesCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ private SearchResultsViewModel CreateViewModel(Declaration declaration)
178178

179179
private string GetModuleLine(QualifiedModuleName module, int line)
180180
{
181-
using (var codeModule = _state.ProjectsProvider.Component(module).CodeModule)
181+
var component = _state.ProjectsProvider.Component(module);
182+
using (var codeModule = component.CodeModule)
182183
{
183184
return codeModule.GetLines(line, 1).Trim();
184185
}

Rubberduck.Core/UI/Command/NavigateCommand.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ protected override void OnExecute(object parameter)
3131

3232
try
3333
{
34-
using (var codeModule = _projectsProvider.Component(param.QualifiedName).CodeModule)
34+
var component = _projectsProvider.Component(param.QualifiedName);
35+
using (var codeModule = component.CodeModule)
3536
{
3637
using (var codePane = codeModule.CodePane)
3738
{

Rubberduck.Core/UI/IdentifierReferences/IdentifierReferencesListDockablePresenter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ private void BindTarget(Declaration target)
3131

3232
private void OnNavigateIdentifierReference(IdentifierReference reference)
3333
{
34-
using (var codeModule = _projectsProvider.Component(reference.QualifiedModuleName).CodeModule)
34+
var component = _projectsProvider.Component(reference.QualifiedModuleName);
35+
using (var codeModule = component.CodeModule)
3536
{
3637
using (var codePane = codeModule.CodePane)
3738
{

Rubberduck.Core/UI/IdentifierReferences/ImplementationsListDockablePresenter.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ private void BindTarget(IEnumerable<Declaration> implementations)
3333

3434
private void OnNavigateImplementation(Declaration implementation)
3535
{
36-
using (var codeModule = _projectsProvider.Component(implementation.QualifiedName.QualifiedModuleName).CodeModule)
36+
var component = _projectsProvider.Component(implementation.QualifiedName.QualifiedModuleName);
37+
using (var codeModule = component.CodeModule)
3738
{
3839
using (var codePane = codeModule.CodePane)
3940
{

0 commit comments

Comments
 (0)