Skip to content

Commit b24cfcb

Browse files
committed
Make it possible to run inspections for single modules
1 parent a7ccb69 commit b24cfcb

12 files changed

+42
-13
lines changed

Rubberduck.CodeAnalysis/Inspections/Abstract/DeclarationInspectionBaseBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
4040
.ToList();
4141
}
4242

43-
protected virtual IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
43+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
4444
{
4545
var finder = DeclarationFinderProvider.DeclarationFinder;
4646
return DoGetInspectionResults(module, finder);

Rubberduck.CodeAnalysis/Inspections/Abstract/DeclarationInspectionUsingGlobalInformationBaseBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
5050
.ToList();
5151
}
5252

53-
protected virtual IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
53+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
5454
{
5555
var finder = DeclarationFinderProvider.DeclarationFinder;
5656
var globalInformation = GlobalInformation(module, finder);

Rubberduck.CodeAnalysis/Inspections/Abstract/IdentifierReferenceInspectionBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleN
4040
.ToList();
4141
}
4242

43-
protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
43+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
4444
{
4545
var finder = DeclarationFinderProvider.DeclarationFinder;
4646
return DoGetInspectionResults(module, finder);
@@ -102,7 +102,7 @@ protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleN
102102
: ((IdentifierReference reference, T properties)?)null;
103103
}
104104

105-
protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
105+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
106106
{
107107
var finder = DeclarationFinderProvider.DeclarationFinder;
108108
return DoGetInspectionResults(module, finder);

Rubberduck.CodeAnalysis/Inspections/Abstract/IdentifierReferenceInspectionFromDeclarationsBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ protected virtual IEnumerable<IdentifierReference> ObjectionableReferences(Decla
4545

4646
protected virtual bool IsResultReference(IdentifierReference reference, DeclarationFinder finder) => true;
4747

48-
protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
48+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
4949
{
5050
var finder = DeclarationFinderProvider.DeclarationFinder;
5151
var objectionableReferences = ObjectionableReferences(finder)
@@ -112,7 +112,7 @@ protected virtual IEnumerable<IdentifierReference> ObjectionableReferences(Decla
112112
.SelectMany(declaration => declaration.References);
113113
}
114114

115-
protected IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
115+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
116116
{
117117
var finder = DeclarationFinderProvider.DeclarationFinder;
118118
var objectionableReferences = ObjectionableReferences(finder)

Rubberduck.CodeAnalysis/Inspections/Abstract/InspectionBase.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ protected InspectionBase(IDeclarationFinderProvider declarationFinderProvider)
6868
public int CompareTo(object obj) => CompareTo(obj as IInspection);
6969

7070
protected abstract IEnumerable<IInspectionResult> DoGetInspectionResults();
71+
protected abstract IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module);
7172

7273
/// <summary>
7374
/// A method that inspects the parser state and returns all issues it can find.
@@ -88,6 +89,26 @@ public IEnumerable<IInspectionResult> GetInspectionResults(CancellationToken tok
8889
return result;
8990
}
9091

92+
/// <summary>
93+
/// A method that inspects the parser state and returns all issues in it can find in a module.
94+
/// </summary>
95+
/// <param name="module">The module for which to get inspection results</param>
96+
/// <param name="token"></param>
97+
/// <returns></returns>
98+
public IEnumerable<IInspectionResult> GetInspectionResults(QualifiedModuleName module, CancellationToken token)
99+
{
100+
var stopwatch = new Stopwatch();
101+
stopwatch.Start();
102+
var declarationFinder = DeclarationFinderProvider.DeclarationFinder;
103+
var result = DoGetInspectionResults(module)
104+
.Where(ir => !ir.IsIgnoringInspectionResult(declarationFinder))
105+
.ToList();
106+
stopwatch.Stop();
107+
Logger.Trace("Intercepted invocation of '{0}.{1}' returned {2} objects.", GetType().Name, nameof(DoGetInspectionResults), result.Count);
108+
Logger.Trace("Intercepted invocation of '{0}.{1}' ran for {2}ms", GetType().Name, nameof(DoGetInspectionResults), stopwatch.ElapsedMilliseconds);
109+
return result;
110+
}
111+
91112
public virtual bool ChangesInvalidateResult(IInspectionResult result, ICollection<QualifiedModuleName> modifiedModules)
92113
{
93114
return true;

Rubberduck.CodeAnalysis/Inspections/Abstract/ParseTreeInspectionBase.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
2828
return DoGetInspectionResults(Listener.Contexts());
2929
}
3030

31-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
31+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
3232
{
3333
return DoGetInspectionResults(Listener.Contexts(module));
3434
}
@@ -72,7 +72,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
7272
return DoGetInspectionResults(Listener.Contexts());
7373
}
7474

75-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
75+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
7676
{
7777
return DoGetInspectionResults(Listener.Contexts(module));
7878
}

Rubberduck.CodeAnalysis/Inspections/Concrete/IllegalAnnotationInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
6060
.SelectMany(module => DoGetInspectionResults(module.QualifiedModuleName, finder));
6161
}
6262

63-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
63+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
6464
{
6565
var finder = DeclarationFinderProvider.DeclarationFinder;
6666
return DoGetInspectionResults(module, finder);

Rubberduck.CodeAnalysis/Inspections/Concrete/ObjectWhereProcedureIsRequiredInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
7070
.SelectMany(module => DoGetInspectionResults(module.QualifiedModuleName));
7171
}
7272

73-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
73+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
7474
{
7575
var finder = DeclarationFinderProvider.DeclarationFinder;
7676
return DoGetInspectionResults(module, finder);

Rubberduck.CodeAnalysis/Inspections/Concrete/ObsoleteTypeHintInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
4848
.SelectMany(module => DoGetInspectionResults(module.QualifiedModuleName, finder));
4949
}
5050

51-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
51+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
5252
{
5353
var finder = DeclarationFinderProvider.DeclarationFinder;
5454
return DoGetInspectionResults(module, finder);

Rubberduck.CodeAnalysis/Inspections/Concrete/SuspiciousLetAssignmentInspection.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
6060
.SelectMany(module => DoGetInspectionResults(module.QualifiedModuleName, finder));
6161
}
6262

63-
private IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
63+
protected override IEnumerable<IInspectionResult> DoGetInspectionResults(QualifiedModuleName module)
6464
{
6565
var finder = DeclarationFinderProvider.DeclarationFinder;
6666
return DoGetInspectionResults(module, finder);

0 commit comments

Comments
 (0)