Skip to content

Commit 04d5622

Browse files
committed
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck into SdkChange
# Conflicts: # Rubberduck.sln
2 parents 49e2b13 + 2d29c23 commit 04d5622

File tree

234 files changed

+6210
-2171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

234 files changed

+6210
-2171
lines changed

Rubberduck.CodeAnalysis/Inspections/Abstract/ParseTreeInspectionBase.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Linq;
33
using Antlr4.Runtime;
44
using Rubberduck.CodeAnalysis.Inspections.Results;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing;
77
using Rubberduck.Parsing.Grammar;
88
using Rubberduck.Parsing.VBA;

Rubberduck.CodeAnalysis/Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Linq;
33
using Rubberduck.CodeAnalysis.Inspections.Abstract;
44
using Rubberduck.CodeAnalysis.Inspections.Attributes;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing.Symbols;
77
using Rubberduck.Parsing.VBA;
88
using Rubberduck.Parsing.VBA.DeclarationCaching;

Rubberduck.CodeAnalysis/Inspections/Concrete/EmptyMethodInspection.cs

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Rubberduck.Parsing.VBA;
55
using Rubberduck.Parsing.VBA.DeclarationCaching;
66
using Rubberduck.Resources.Inspections;
7+
using Rubberduck.Parsing;
78

89
namespace Rubberduck.CodeAnalysis.Inspections.Concrete
910
{

Rubberduck.CodeAnalysis/Inspections/Concrete/FunctionReturnValueAlwaysDiscardedInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Linq;
33
using Antlr4.Runtime;
44
using Rubberduck.CodeAnalysis.Inspections.Abstract;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing;
77
using Rubberduck.Parsing.Grammar;
88
using Rubberduck.Parsing.Symbols;

Rubberduck.CodeAnalysis/Inspections/Concrete/IllegalAnnotationInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Linq;
33
using Rubberduck.CodeAnalysis.Inspections.Abstract;
44
using Rubberduck.CodeAnalysis.Inspections.Results;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing;
77
using Rubberduck.Parsing.Annotations;
88
using Rubberduck.Parsing.Symbols;

Rubberduck.CodeAnalysis/Inspections/Concrete/ImplementedInterfaceMemberInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Linq;
22
using Rubberduck.CodeAnalysis.Inspections.Abstract;
3-
using Rubberduck.CodeAnalysis.Inspections.Extensions;
43
using Rubberduck.Common;
4+
using Rubberduck.Parsing;
55
using Rubberduck.Parsing.Annotations.Concrete;
66
using Rubberduck.Parsing.Symbols;
77
using Rubberduck.Parsing.VBA;

Rubberduck.CodeAnalysis/Inspections/Concrete/ImplicitPublicMemberInspection.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ public ImplicitPublicMemberInspection(IDeclarationFinderProvider declarationFind
4242
DeclarationType.Procedure,
4343
DeclarationType.PropertyGet,
4444
DeclarationType.PropertyLet,
45-
DeclarationType.PropertySet
45+
DeclarationType.PropertySet,
46+
DeclarationType.Enumeration,
47+
DeclarationType.UserDefinedType
4648
};
4749

4850
protected override bool IsResultDeclaration(Declaration declaration, DeclarationFinder finder)

Rubberduck.CodeAnalysis/Inspections/Concrete/ShadowedDeclarationInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System.Linq;
44
using Rubberduck.CodeAnalysis.Inspections.Abstract;
55
using Rubberduck.CodeAnalysis.Inspections.Extensions;
6-
using Rubberduck.JunkDrawer.Extensions;
6+
using Rubberduck.InternalApi.Extensions;
77
using Rubberduck.Parsing.Symbols;
88
using Rubberduck.Parsing.VBA;
99
using Rubberduck.Parsing.VBA.DeclarationCaching;

Rubberduck.CodeAnalysis/Inspections/Concrete/ThunderCode/KeywordsUsedAsMemberInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Collections.Generic;
22
using System.Linq;
33
using Rubberduck.CodeAnalysis.Inspections.Abstract;
4-
using Rubberduck.JunkDrawer.Extensions;
4+
using Rubberduck.InternalApi.Extensions;
55
using Rubberduck.Parsing.Grammar;
66
using Rubberduck.Parsing.Symbols;
77
using Rubberduck.Parsing.VBA;

Rubberduck.CodeAnalysis/Inspections/Concrete/UnassignedVariableUsageInspection.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Diagnostics.CodeAnalysis;
33
using System.Linq;
44
using Rubberduck.CodeAnalysis.Inspections.Abstract;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing;
77
using Rubberduck.Parsing.Grammar;
88
using Rubberduck.Parsing.Symbols;

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ExpressionFilter.cs

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
using System.Linq;
55
using System.Text;
66
using Rubberduck.Parsing.Grammar;
7+
using Rubberduck.Refactoring.ParseTreeValue;
8+
using Rubberduck.Refactorings;
79

810
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
911
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ExpressionFilterBoolean.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using Rubberduck.Parsing.Grammar;
2+
using Rubberduck.Refactoring.ParseTreeValue;
3+
using Rubberduck.Refactorings;
24

35
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
46
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ExpressionFilterDate.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Linq;
33
using Rubberduck.Parsing.Grammar;
4+
using Rubberduck.Refactoring.ParseTreeValue;
45

56
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
67
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ExpressionFilterFactory.cs

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Globalization;
33
using System.Linq;
44
using Rubberduck.Parsing.Grammar;
5+
using Rubberduck.Refactoring.ParseTreeValue;
56

67
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
78
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ParseTreeExpressionEvaluator.cs

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
using System.Text.RegularExpressions;
66
using Rubberduck.Parsing.Grammar;
77
using Rubberduck.Parsing.PreProcessing;
8+
using Rubberduck.Refactorings;
9+
using Rubberduck.Refactoring.ParseTreeValue;
810

911
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
1012
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ParseTreeValueVisitor.cs

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using Rubberduck.Parsing.Grammar;
88
using Rubberduck.Parsing.Symbols;
99
using Rubberduck.Parsing.VBA.DeclarationCaching;
10+
using Rubberduck.Refactoring.ParseTreeValue;
11+
using Rubberduck.Refactorings;
1012
using Rubberduck.VBEditor;
1113

1214
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/ParseTreeVisitorResults.cs

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.Linq;
44
using Antlr4.Runtime;
55
using Rubberduck.Parsing.Grammar;
6+
using Rubberduck.Refactorings;
67

78
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
89
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/RangeClauseExpression.cs

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Collections.Generic;
22
using Rubberduck.Parsing.Grammar;
3+
using Rubberduck.Refactorings;
34

45
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation
56
{

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseEvaluation/UnreachableCaseInspector.cs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Rubberduck.Parsing.Grammar;
77
using Rubberduck.Parsing.Symbols;
88
using Rubberduck.Parsing.VBA.DeclarationCaching;
9+
using Rubberduck.Refactorings;
910
using Rubberduck.VBEditor;
1011

1112
namespace Rubberduck.CodeAnalysis.Inspections.Concrete.UnreachableCaseEvaluation

Rubberduck.CodeAnalysis/Inspections/Concrete/VariableNotUsedInspection.cs

+15-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,21 @@ protected override bool IsResultDeclaration(Declaration declaration, Declaration
5454
{
5555
return !declaration.IsWithEvents
5656
&& declaration.References
57-
.All(reference => reference.IsAssignment);
57+
.All(reference => reference.IsAssignment)
58+
&& !declaration.References.Any(IsForLoopAssignment);
59+
}
60+
61+
private bool IsForLoopAssignment(IdentifierReference reference)
62+
{
63+
if(!reference.IsAssignment)
64+
{
65+
return false;
66+
}
67+
68+
//A For Next loop has the form For expr1 = expr2 (Step expr3) ... Next (expr1)
69+
var relationalOpAncestor = reference.Context.GetAncestor<VBAParser.RelationalOpContext>();
70+
return relationalOpAncestor != null
71+
&& relationalOpAncestor.Parent is VBAParser.ForNextStmtContext;
5872
}
5973

6074
protected override IInspectionResult InspectionResult(Declaration declaration)

Rubberduck.CodeAnalysis/Inspections/Extensions/ExecutableBlocksExtensions.cs

-64
This file was deleted.

Rubberduck.CodeAnalysis/Inspections/Logistics/Inspector.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using System.Collections.Concurrent;
33
using System.Collections.Generic;
44
using System.Globalization;
5-
using System.IO;
5+
using Path = System.IO.Path;
66
using System.Linq;
77
using System.Reflection;
88
using System.Threading;

Rubberduck.CodeAnalysis/QuickFixes/Abstract/QuickFixBase.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Linq;
55
using NLog;
66
using Rubberduck.CodeAnalysis.Inspections;
7-
using Rubberduck.JunkDrawer.Extensions;
7+
using Rubberduck.InternalApi.Extensions;
88
using Rubberduck.Parsing.Rewriter;
99
using Rubberduck.Parsing.VBA.Parsing;
1010

Rubberduck.CodeAnalysis/QuickFixes/Concrete/ChangeIntegerToLongQuickFix.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using Rubberduck.CodeAnalysis.Inspections;
55
using Rubberduck.CodeAnalysis.Inspections.Concrete;
66
using Rubberduck.CodeAnalysis.QuickFixes.Abstract;
7-
using Rubberduck.JunkDrawer.Extensions;
7+
using Rubberduck.InternalApi.Extensions;
88
using Rubberduck.Parsing;
99
using Rubberduck.Parsing.Grammar;
1010
using Rubberduck.Parsing.Rewriter;

Rubberduck.CodeAnalysis/QuickFixes/Concrete/ChangeProcedureToFunctionQuickFix.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Rubberduck.CodeAnalysis.Inspections;
44
using Rubberduck.CodeAnalysis.Inspections.Concrete;
55
using Rubberduck.CodeAnalysis.QuickFixes.Abstract;
6-
using Rubberduck.JunkDrawer.Extensions;
6+
using Rubberduck.InternalApi.Extensions;
77
using Rubberduck.Parsing;
88
using Rubberduck.Parsing.Grammar;
99
using Rubberduck.Parsing.Rewriter;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
using Rubberduck.CodeAnalysis.Inspections;
2+
using Rubberduck.CodeAnalysis.Inspections.Concrete;
3+
using Rubberduck.CodeAnalysis.QuickFixes.Abstract;
4+
using Rubberduck.Parsing.Rewriter;
5+
using Rubberduck.Refactorings;
6+
using Rubberduck.Refactorings.ImplicitTypeToExplicit;
7+
8+
namespace Rubberduck.CodeAnalysis.QuickFixes.Concrete
9+
{
10+
/// <summary>
11+
/// Assigns an explicit data type to an implicitly typed declaration.
12+
/// </summary>
13+
/// <inspections>
14+
/// <inspection name="VariableTypeNotDeclaredInspection" />
15+
/// <inspection name="ImplicitlyTypedConstInspection" />
16+
/// </inspections>
17+
/// <canfix multiple="true" procedure="false" module="true" project="true" all="true" />
18+
/// <example>
19+
/// <before>
20+
/// <![CDATA[
21+
/// Public Sub DoSomething(ByRef arg As String)
22+
/// Dim localVar
23+
/// localVar = arg
24+
/// End Sub
25+
/// ]]>
26+
/// </before>
27+
/// <after>
28+
/// <![CDATA[
29+
/// Public Sub DoSomething(ByRef arg As String)
30+
/// Dim localVar As String
31+
/// localVar = arg
32+
/// End Sub
33+
/// ]]>
34+
/// </after>
35+
/// </example>
36+
/// <example>
37+
/// <before>
38+
/// <![CDATA[
39+
/// Public Const PI = 3.14
40+
/// ]]>
41+
/// </before>
42+
/// <after>
43+
/// <![CDATA[
44+
/// Public Const PI As Double = 3.14
45+
/// ]]>
46+
/// </after>
47+
/// </example>
48+
/// <example>
49+
/// <before>
50+
/// <![CDATA[
51+
/// Public Sub DoSomething(Optional ByVal arg = 2)
52+
/// End Sub
53+
/// ]]>
54+
/// </before>
55+
/// <after>
56+
/// <![CDATA[
57+
/// Public Sub DoSomething(Optional ByVal arg As Long = 2)
58+
/// End Sub
59+
/// ]]>
60+
/// </after>
61+
/// </example>
62+
/// <example>
63+
/// <before>
64+
/// <![CDATA[
65+
/// Public Sub DoSomething(ByRef arg)
66+
/// arg = CCur(Sheet1.Range("A1").Value)
67+
/// End Sub
68+
/// ]]>
69+
/// </before>
70+
/// <after>
71+
/// <![CDATA[
72+
/// Public Sub DoSomething(ByRef arg As Currency)
73+
/// arg = CCur(Sheet1.Range("A1").Value)
74+
/// End Sub
75+
/// ]]>
76+
/// </after>
77+
/// </example>
78+
internal sealed class DeclareAsExplicitTypeQuickFix : QuickFixBase
79+
{
80+
private readonly ICodeOnlyRefactoringAction<ImplicitTypeToExplicitModel> _refactoring;
81+
public DeclareAsExplicitTypeQuickFix(ImplicitTypeToExplicitRefactoringAction refactoringAction)
82+
: base(typeof(VariableTypeNotDeclaredInspection), typeof(ImplicitlyTypedConstInspection))
83+
{
84+
_refactoring = refactoringAction;
85+
}
86+
87+
public override bool CanFixMultiple => true;
88+
public override bool CanFixInProcedure => false;
89+
public override bool CanFixInModule => true;
90+
public override bool CanFixInProject => true;
91+
public override bool CanFixAll => true;
92+
93+
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession)
94+
{
95+
_refactoring.Refactor(new ImplicitTypeToExplicitModel(result.Target), rewriteSession);
96+
}
97+
98+
public override string Description(IInspectionResult result)
99+
=> Resources.Inspections.QuickFixes.DeclareAsExplicitTypeQuickFix;
100+
}
101+
}

Rubberduck.CodeAnalysis/QuickFixes/Concrete/RemoveExplicitByRefModifierQuickFix.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
using Rubberduck.CodeAnalysis.Inspections;
33
using Rubberduck.CodeAnalysis.Inspections.Concrete;
44
using Rubberduck.CodeAnalysis.QuickFixes.Abstract;
5-
using Rubberduck.JunkDrawer.Extensions;
5+
using Rubberduck.InternalApi.Extensions;
66
using Rubberduck.Parsing.Grammar;
77
using Rubberduck.Parsing.Rewriter;
88
using Rubberduck.Parsing.Symbols;

0 commit comments

Comments
 (0)