From b1e7b6dd85fcb31be591a21975247da265ed9aa8 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:57:20 -0800 Subject: [PATCH 01/11] Rubberduck.Inspections.Abstract --- Rubberduck.Inspections/Abstract/InspectionBase.cs | 12 ++++++------ .../Abstract/InspectionResultBase.cs | 15 +++++++++++---- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Rubberduck.Inspections/Abstract/InspectionBase.cs b/Rubberduck.Inspections/Abstract/InspectionBase.cs index 5c6936d3ef..a2022b1d7b 100644 --- a/Rubberduck.Inspections/Abstract/InspectionBase.cs +++ b/Rubberduck.Inspections/Abstract/InspectionBase.cs @@ -36,7 +36,7 @@ protected InspectionBase(RubberduckParserState state, CodeInspectionSeverity def /// /// Gets a localized string representing a short name/description for the inspection. /// - public virtual string Description => InspectionsUI.ResourceManager.GetString(Name + "Name", CultureInfo.CurrentUICulture); + public virtual string Description => InspectionsUI.ResourceManager.GetString($"{Name}Name", CultureInfo.CurrentUICulture); /// /// Gets the type of inspection; used for regrouping inspections. @@ -56,13 +56,13 @@ protected InspectionBase(RubberduckParserState state, CodeInspectionSeverity def /// /// Meta-information about why an inspection exists. /// - public virtual string Meta => InspectionsUI.ResourceManager.GetString(Name + "Meta", CultureInfo.CurrentUICulture); + public virtual string Meta => InspectionsUI.ResourceManager.GetString($"{Name}Meta", CultureInfo.CurrentUICulture); /// /// Gets a localized string representing the type of inspection. /// /// - public virtual string InspectionTypeName => InspectionsUI.ResourceManager.GetString("CodeInspectionSettings_" + InspectionType.ToString(), CultureInfo.CurrentUICulture); + public virtual string InspectionTypeName => InspectionsUI.ResourceManager.GetString($"CodeInspectionSettings_{InspectionType.ToString()}", CultureInfo.CurrentUICulture); /// /// Gets a string representing the text that must be present in an @@ -112,9 +112,9 @@ protected bool IsIgnoringInspectionResultFor(QualifiedModuleName module, int lin return true; } - if (ignoreModuleAnnotation != null && - (ignoreModuleAnnotation.InspectionNames.Contains(AnnotationName) || - !ignoreModuleAnnotation.InspectionNames.Any())) + if (ignoreModuleAnnotation != null + && (ignoreModuleAnnotation.InspectionNames.Contains(AnnotationName) + || !ignoreModuleAnnotation.InspectionNames.Any())) { return true; } diff --git a/Rubberduck.Inspections/Abstract/InspectionResultBase.cs b/Rubberduck.Inspections/Abstract/InspectionResultBase.cs index 58ca74c8ca..ca0f43b91f 100644 --- a/Rubberduck.Inspections/Abstract/InspectionResultBase.cs +++ b/Rubberduck.Inspections/Abstract/InspectionResultBase.cs @@ -57,11 +57,15 @@ public int CompareTo(IInspectionResult other) public string ToClipboardString() { var module = QualifiedSelection.QualifiedName; - var documentName = Target != null ? Target.ProjectDisplayName : string.Empty; + var documentName = Target != null + ? Target.ProjectDisplayName + : string.Empty; if (string.IsNullOrEmpty(documentName)) { var component = module.Component; - documentName = component != null ? component.ParentProject.ProjectDisplayName : string.Empty; + documentName = component != null + ? component.ParentProject.ProjectDisplayName + : string.Empty; } if (string.IsNullOrEmpty(documentName)) { @@ -72,7 +76,7 @@ public string ToClipboardString() InspectionsUI.QualifiedSelectionInspection, Inspection.Severity, Description, - "(" + documentName + ")", + $"({documentName})", module.ProjectName, module.ComponentName, QualifiedSelection.Selection.StartLine); @@ -81,7 +85,10 @@ public string ToClipboardString() private NavigateCodeEventArgs _navigationArgs; public NavigateCodeEventArgs GetNavigationArgs() { - if (_navigationArgs != null) { return _navigationArgs; } + if (_navigationArgs != null) + { + return _navigationArgs; + } _navigationArgs = new NavigateCodeEventArgs(QualifiedSelection); return _navigationArgs; From ad4cb7d1b16da1a3cb3900790b9ca7f56c6b1623 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:57:41 -0800 Subject: [PATCH 02/11] Rubberduck.Inspections.Concrete --- .../ApplicationWorksheetFunctionInspection.cs | 3 +- .../AssignedByValParameterInspection.cs | 1 - .../BooleanAssignedInIfElseInspection.cs | 3 +- .../Concrete/ConstantNotUsedInspection.cs | 1 - .../Concrete/DefaultProjectNameInspection.cs | 3 +- .../EmptyBlockInspectionListenerBase.cs | 5 +- .../Concrete/EmptyCaseBlockInspection.cs | 1 - .../Concrete/EmptyDoWhileBlockInspection.cs | 1 - .../Concrete/EmptyElseBlockInspection.cs | 1 - .../Concrete/EmptyForEachBlockInspection.cs | 1 - .../Concrete/EmptyForLoopBlockInspection.cs | 1 - .../Concrete/EmptyIfBlockInspection.cs | 1 - .../Concrete/EmptyModuleInspection.cs | 3 +- .../Concrete/EmptyStringLiteralInspection.cs | 3 +- .../Concrete/EmptyWhileWendBlockInspection.cs | 1 - .../EncapsulatePublicFieldInspection.cs | 3 +- .../FunctionReturnValueNotUsedInspection.cs | 52 +++--------- .../HostSpecificExpressionInspection.cs | 1 - .../Concrete/HungarianNotationInspection.cs | 5 +- .../ImplicitActiveSheetReferenceInspection.cs | 3 +- ...plicitActiveWorkbookReferenceInspection.cs | 1 - .../ImplicitByRefModifierInspection.cs | 1 - ...plicitDefaultMemberAssignmentInspection.cs | 1 - .../ImplicitPublicMemberInspection.cs | 1 - .../ImplicitVariantReturnTypeInspection.cs | 1 - .../Concrete/IntegerDataTypeInspection.cs | 7 +- .../Concrete/LineLabelNotUsedInspection.cs | 1 - .../MemberNotOnInterfaceInspection.cs | 3 +- .../MissingAnnotationArgumentInspection.cs | 1 - .../Concrete/MissingAnnotationInspection.cs | 2 - .../Concrete/MissingAttributeInspection.cs | 1 - .../ModuleScopeDimKeywordInspection.cs | 1 - .../MoveFieldCloserToUsageInspection.cs | 3 +- .../Concrete/MultilineParameterInspection.cs | 1 - .../MultipleDeclarationsInspection.cs | 1 - .../NonReturningFunctionInspection.cs | 1 - .../ObsoleteCallStatementInspection.cs | 4 +- .../ObsoleteCommentSyntaxInspection.cs | 3 +- .../Concrete/ObsoleteErrorSyntaxInspection.cs | 3 +- .../Concrete/ObsoleteGlobalInspection.cs | 1 - .../ObsoleteLetStatementInspection.cs | 1 - .../Concrete/ObsoleteTypeHintInspection.cs | 1 - .../Concrete/OptionBaseInspection.cs | 1 - .../Concrete/ParameterCanBeByValInspection.cs | 34 +++----- .../Concrete/ParameterNotUsedInspection.cs | 1 - ...ocedureCanBeWrittenAsFunctionInspection.cs | 6 +- .../Concrete/ProcedureNotUsedInspection.cs | 3 +- .../Concrete/ShadowedDeclarationInspection.cs | 80 +++++++------------ .../Concrete/StopKeywordInspection.cs | 3 +- .../UnassignedVariableUsageInspection.cs | 1 - .../Concrete/UndeclaredVariableInspection.cs | 1 - .../UntypedFunctionUsageInspection.cs | 1 - .../Concrete/UseMeaningfulNameInspection.cs | 3 +- .../Concrete/VariableNotAssignedInspection.cs | 1 - .../Concrete/VariableNotUsedInspection.cs | 1 - .../VariableTypeNotDeclaredInspection.cs | 3 +- .../Concrete/WriteOnlyPropertyInspection.cs | 1 - 57 files changed, 76 insertions(+), 197 deletions(-) diff --git a/Rubberduck.Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs b/Rubberduck.Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs index c54a223621..b97f938f22 100644 --- a/Rubberduck.Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs +++ b/Rubberduck.Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/AssignedByValParameterInspection.cs b/Rubberduck.Inspections/Concrete/AssignedByValParameterInspection.cs index a4a76a6d69..a00a13bfe8 100644 --- a/Rubberduck.Inspections/Concrete/AssignedByValParameterInspection.cs +++ b/Rubberduck.Inspections/Concrete/AssignedByValParameterInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/BooleanAssignedInIfElseInspection.cs b/Rubberduck.Inspections/Concrete/BooleanAssignedInIfElseInspection.cs index 5d671dd87b..a5b4d7a9de 100644 --- a/Rubberduck.Inspections/Concrete/BooleanAssignedInIfElseInspection.cs +++ b/Rubberduck.Inspections/Concrete/BooleanAssignedInIfElseInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ConstantNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/ConstantNotUsedInspection.cs index 597cb0bc8f..f9d0fb8862 100644 --- a/Rubberduck.Inspections/Concrete/ConstantNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/ConstantNotUsedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/DefaultProjectNameInspection.cs b/Rubberduck.Inspections/Concrete/DefaultProjectNameInspection.cs index 323db950f2..d64cae3420 100644 --- a/Rubberduck.Inspections/Concrete/DefaultProjectNameInspection.cs +++ b/Rubberduck.Inspections/Concrete/DefaultProjectNameInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/EmptyBlockInspectionListenerBase.cs b/Rubberduck.Inspections/Concrete/EmptyBlockInspectionListenerBase.cs index e0c8c98915..58375e1178 100644 --- a/Rubberduck.Inspections/Concrete/EmptyBlockInspectionListenerBase.cs +++ b/Rubberduck.Inspections/Concrete/EmptyBlockInspectionListenerBase.cs @@ -35,16 +35,15 @@ public void AddResult(QualifiedContext qualifiedContext) private bool BlockContainsExecutableStatements(VBAParser.BlockContext block) { - return block != null && block.children != null && ContainsExecutableStatements(block); + return block?.children != null && ContainsExecutableStatements(block); } private bool ContainsExecutableStatements(VBAParser.BlockContext block) { foreach (var child in block.children) { - if (child is VBAParser.BlockStmtContext) + if (child is VBAParser.BlockStmtContext blockStmt) { - var blockStmt = (VBAParser.BlockStmtContext)child; var mainBlockStmt = blockStmt.mainBlockStmt(); if (mainBlockStmt == null) diff --git a/Rubberduck.Inspections/Concrete/EmptyCaseBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyCaseBlockInspection.cs index 2c8fd269e3..16c152af62 100644 --- a/Rubberduck.Inspections/Concrete/EmptyCaseBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyCaseBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyDoWhileBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyDoWhileBlockInspection.cs index 8623fbdd30..10aa071d67 100644 --- a/Rubberduck.Inspections/Concrete/EmptyDoWhileBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyDoWhileBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyElseBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyElseBlockInspection.cs index fb7b29e19a..8ec48ef6bf 100644 --- a/Rubberduck.Inspections/Concrete/EmptyElseBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyElseBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyForEachBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyForEachBlockInspection.cs index 267efc8ce7..6e0d8a25b4 100644 --- a/Rubberduck.Inspections/Concrete/EmptyForEachBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyForEachBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyForLoopBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyForLoopBlockInspection.cs index 087dc35974..df4f062310 100644 --- a/Rubberduck.Inspections/Concrete/EmptyForLoopBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyForLoopBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyIfBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyIfBlockInspection.cs index 7acfc8327c..f56f80aa4a 100644 --- a/Rubberduck.Inspections/Concrete/EmptyIfBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyIfBlockInspection.cs @@ -7,7 +7,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EmptyModuleInspection.cs b/Rubberduck.Inspections/Concrete/EmptyModuleInspection.cs index eb0bc7ebcc..274718f81c 100644 --- a/Rubberduck.Inspections/Concrete/EmptyModuleInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyModuleInspection.cs @@ -7,7 +7,6 @@ using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.Symbols; using Rubberduck.Parsing.VBA; -using Rubberduck.VBEditor; using Rubberduck.VBEditor.SafeComWrappers; namespace Rubberduck.Inspections.Concrete @@ -15,7 +14,7 @@ namespace Rubberduck.Inspections.Concrete public sealed class EmptyModuleInspection : InspectionBase { - private EmptyModuleVisitor _emptyModuleVisitor; + private readonly EmptyModuleVisitor _emptyModuleVisitor; public EmptyModuleInspection(RubberduckParserState state, CodeInspectionSeverity defaultSeverity = CodeInspectionSeverity.Hint) diff --git a/Rubberduck.Inspections/Concrete/EmptyStringLiteralInspection.cs b/Rubberduck.Inspections/Concrete/EmptyStringLiteralInspection.cs index 5e55acf19c..5f8f460034 100644 --- a/Rubberduck.Inspections/Concrete/EmptyStringLiteralInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyStringLiteralInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/EmptyWhileWendBlockInspection.cs b/Rubberduck.Inspections/Concrete/EmptyWhileWendBlockInspection.cs index 52b57c9521..e3d6399e45 100644 --- a/Rubberduck.Inspections/Concrete/EmptyWhileWendBlockInspection.cs +++ b/Rubberduck.Inspections/Concrete/EmptyWhileWendBlockInspection.cs @@ -5,7 +5,6 @@ using Rubberduck.Parsing.Inspections.Abstract; using Rubberduck.Parsing.Inspections.Resources; using Rubberduck.Parsing.VBA; -using System; using System.Collections.Generic; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/EncapsulatePublicFieldInspection.cs b/Rubberduck.Inspections/Concrete/EncapsulatePublicFieldInspection.cs index ac01b83c46..8abb1a91d5 100644 --- a/Rubberduck.Inspections/Concrete/EncapsulatePublicFieldInspection.cs +++ b/Rubberduck.Inspections/Concrete/EncapsulatePublicFieldInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/FunctionReturnValueNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/FunctionReturnValueNotUsedInspection.cs index 4cd7772430..8d511be0e5 100644 --- a/Rubberduck.Inspections/Concrete/FunctionReturnValueNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/FunctionReturnValueNotUsedInspection.cs @@ -77,35 +77,13 @@ private bool IsRecursive(Declaration function) private bool IsReturnValueUsed(Declaration function) { - foreach (var usage in function.References) - { - if (IsAddressOfCall(usage)) - { - continue; - } - if (IsTypeOfExpression(usage)) - { - continue; - } - if (IsCallStmt(usage)) // IsIndexExprOrCallStmt(usage)) - { - continue; - } - if (IsLet(usage)) - { - continue; - } - if (IsSet(usage)) - { - continue; - } - if (IsReturnStatement(function, usage)) - { - continue; - } - return true; - } - return false; + return (from usage in function.References + where !IsAddressOfCall(usage) + where !IsTypeOfExpression(usage) + where !IsCallStmt(usage) + where !IsLet(usage) + where !IsSet(usage) + select usage).Any(usage => !IsReturnStatement(function, usage)); } private bool IsAddressOfCall(IdentifierReference usage) @@ -161,23 +139,15 @@ private bool IsIndexExprContext(IdentifierReference usage) private bool IsLet(IdentifierReference usage) { var letStmt = ParserRuleContextHelper.GetParent(usage.Context); - if (letStmt == null) - { - return false; - } - bool isLetAssignmentTarget = letStmt == usage.Context; - return isLetAssignmentTarget; + + return letStmt != null && letStmt == usage.Context; } private bool IsSet(IdentifierReference usage) { var setStmt = ParserRuleContextHelper.GetParent(usage.Context); - if (setStmt == null) - { - return false; - } - bool isSetAssignmentTarget = setStmt == usage.Context; - return isSetAssignmentTarget; + + return setStmt != null && setStmt == usage.Context; } } } diff --git a/Rubberduck.Inspections/Concrete/HostSpecificExpressionInspection.cs b/Rubberduck.Inspections/Concrete/HostSpecificExpressionInspection.cs index 456a34a6c9..1cf44d80ff 100644 --- a/Rubberduck.Inspections/Concrete/HostSpecificExpressionInspection.cs +++ b/Rubberduck.Inspections/Concrete/HostSpecificExpressionInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/HungarianNotationInspection.cs b/Rubberduck.Inspections/Concrete/HungarianNotationInspection.cs index 7d211fe611..990dd9f505 100644 --- a/Rubberduck.Inspections/Concrete/HungarianNotationInspection.cs +++ b/Rubberduck.Inspections/Concrete/HungarianNotationInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text.RegularExpressions; @@ -119,7 +118,7 @@ protected override IEnumerable DoGetInspectionResults() HungarianIdentifierRegex.IsMatch(declaration.IdentifierName)) .Select(issue => new DeclarationInspectionResult(this, string.Format(InspectionsUI.IdentifierNameInspectionResultFormat, - RubberduckUI.ResourceManager.GetString("DeclarationType_" + issue.DeclarationType, CultureInfo.CurrentUICulture), + RubberduckUI.ResourceManager.GetString($"DeclarationType_{issue.DeclarationType}", CultureInfo.CurrentUICulture), issue.IdentifierName), issue)); diff --git a/Rubberduck.Inspections/Concrete/ImplicitActiveSheetReferenceInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitActiveSheetReferenceInspection.cs index a0b4452d30..e695018f87 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitActiveSheetReferenceInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitActiveSheetReferenceInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/ImplicitActiveWorkbookReferenceInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitActiveWorkbookReferenceInspection.cs index a2770efdf2..9715e62aa0 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitActiveWorkbookReferenceInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitActiveWorkbookReferenceInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ImplicitByRefModifierInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitByRefModifierInspection.cs index e6a3de7a79..2d38832235 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitByRefModifierInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitByRefModifierInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/ImplicitDefaultMemberAssignmentInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitDefaultMemberAssignmentInspection.cs index b729f4c7d2..0830b53cab 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitDefaultMemberAssignmentInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitDefaultMemberAssignmentInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ImplicitPublicMemberInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitPublicMemberInspection.cs index 0d77e64795..6245f6a647 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitPublicMemberInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitPublicMemberInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ImplicitVariantReturnTypeInspection.cs b/Rubberduck.Inspections/Concrete/ImplicitVariantReturnTypeInspection.cs index 61106e4fc0..35772662a9 100644 --- a/Rubberduck.Inspections/Concrete/ImplicitVariantReturnTypeInspection.cs +++ b/Rubberduck.Inspections/Concrete/ImplicitVariantReturnTypeInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/IntegerDataTypeInspection.cs b/Rubberduck.Inspections/Concrete/IntegerDataTypeInspection.cs index 016b2979cc..acf9aeb714 100644 --- a/Rubberduck.Inspections/Concrete/IntegerDataTypeInspection.cs +++ b/Rubberduck.Inspections/Concrete/IntegerDataTypeInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using Rubberduck.Common; @@ -20,7 +19,7 @@ public IntegerDataTypeInspection(RubberduckParserState state) : base(state, Code { } - public override CodeInspectionType InspectionType { get; } = CodeInspectionType.CodeQualityIssues; + public override CodeInspectionType InspectionType => CodeInspectionType.CodeQualityIssues; protected override IEnumerable DoGetInspectionResults() { @@ -38,7 +37,7 @@ protected override IEnumerable DoGetInspectionResults() .Select(issue => new DeclarationInspectionResult(this, string.Format(InspectionsUI.IntegerDataTypeInspectionResultFormat, - RubberduckUI.ResourceManager.GetString("DeclarationType_" + issue.DeclarationType, CultureInfo.CurrentUICulture), issue.IdentifierName), + RubberduckUI.ResourceManager.GetString($"DeclarationType_{issue.DeclarationType}", CultureInfo.CurrentUICulture), issue.IdentifierName), issue)); return result; diff --git a/Rubberduck.Inspections/Concrete/LineLabelNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/LineLabelNotUsedInspection.cs index 45f770faac..97f46cdba2 100644 --- a/Rubberduck.Inspections/Concrete/LineLabelNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/LineLabelNotUsedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/MemberNotOnInterfaceInspection.cs b/Rubberduck.Inspections/Concrete/MemberNotOnInterfaceInspection.cs index 26498d4066..dd9e3d6edc 100644 --- a/Rubberduck.Inspections/Concrete/MemberNotOnInterfaceInspection.cs +++ b/Rubberduck.Inspections/Concrete/MemberNotOnInterfaceInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/MissingAnnotationArgumentInspection.cs b/Rubberduck.Inspections/Concrete/MissingAnnotationArgumentInspection.cs index 03beb49cb5..6bc65b1233 100644 --- a/Rubberduck.Inspections/Concrete/MissingAnnotationArgumentInspection.cs +++ b/Rubberduck.Inspections/Concrete/MissingAnnotationArgumentInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/MissingAnnotationInspection.cs b/Rubberduck.Inspections/Concrete/MissingAnnotationInspection.cs index fdac035076..a75612080b 100644 --- a/Rubberduck.Inspections/Concrete/MissingAnnotationInspection.cs +++ b/Rubberduck.Inspections/Concrete/MissingAnnotationInspection.cs @@ -1,6 +1,4 @@ -using System; using System.Collections.Generic; -using System.Diagnostics; using System.Linq; using Antlr4.Runtime; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/MissingAttributeInspection.cs b/Rubberduck.Inspections/Concrete/MissingAttributeInspection.cs index d5cb97072e..60eaf22991 100644 --- a/Rubberduck.Inspections/Concrete/MissingAttributeInspection.cs +++ b/Rubberduck.Inspections/Concrete/MissingAttributeInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/ModuleScopeDimKeywordInspection.cs b/Rubberduck.Inspections/Concrete/ModuleScopeDimKeywordInspection.cs index a7df919b88..05f2bdf0d6 100644 --- a/Rubberduck.Inspections/Concrete/ModuleScopeDimKeywordInspection.cs +++ b/Rubberduck.Inspections/Concrete/ModuleScopeDimKeywordInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/MoveFieldCloserToUsageInspection.cs b/Rubberduck.Inspections/Concrete/MoveFieldCloserToUsageInspection.cs index cb1e1d56c5..029ea7623f 100644 --- a/Rubberduck.Inspections/Concrete/MoveFieldCloserToUsageInspection.cs +++ b/Rubberduck.Inspections/Concrete/MoveFieldCloserToUsageInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/MultilineParameterInspection.cs b/Rubberduck.Inspections/Concrete/MultilineParameterInspection.cs index adefcd7ddb..56a10c65c3 100644 --- a/Rubberduck.Inspections/Concrete/MultilineParameterInspection.cs +++ b/Rubberduck.Inspections/Concrete/MultilineParameterInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/MultipleDeclarationsInspection.cs b/Rubberduck.Inspections/Concrete/MultipleDeclarationsInspection.cs index 85596823c3..8d8d71a023 100644 --- a/Rubberduck.Inspections/Concrete/MultipleDeclarationsInspection.cs +++ b/Rubberduck.Inspections/Concrete/MultipleDeclarationsInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/NonReturningFunctionInspection.cs b/Rubberduck.Inspections/Concrete/NonReturningFunctionInspection.cs index abbae7b94c..62e252ff83 100644 --- a/Rubberduck.Inspections/Concrete/NonReturningFunctionInspection.cs +++ b/Rubberduck.Inspections/Concrete/NonReturningFunctionInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Common; diff --git a/Rubberduck.Inspections/Concrete/ObsoleteCallStatementInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteCallStatementInspection.cs index 801efca825..881f1104b0 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteCallStatementInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteCallStatementInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; @@ -36,8 +35,7 @@ protected override IEnumerable DoGetInspectionResults() var stringStrippedLines = string.Join(string.Empty, lines).StripStringLiterals(); - int commentIndex; - if (stringStrippedLines.HasComment(out commentIndex)) + if (stringStrippedLines.HasComment(out var commentIndex)) { stringStrippedLines = stringStrippedLines.Remove(commentIndex); } diff --git a/Rubberduck.Inspections/Concrete/ObsoleteCommentSyntaxInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteCommentSyntaxInspection.cs index 7cc25caed5..bc700cfa10 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteCommentSyntaxInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteCommentSyntaxInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ObsoleteErrorSyntaxInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteErrorSyntaxInspection.cs index 20d3e346b1..3216c1688f 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteErrorSyntaxInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteErrorSyntaxInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/ObsoleteGlobalInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteGlobalInspection.cs index ea92455538..b146669647 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteGlobalInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteGlobalInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Common; diff --git a/Rubberduck.Inspections/Concrete/ObsoleteLetStatementInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteLetStatementInspection.cs index 693e45dcc6..8442fd7853 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteLetStatementInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteLetStatementInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/ObsoleteTypeHintInspection.cs b/Rubberduck.Inspections/Concrete/ObsoleteTypeHintInspection.cs index 97c751f29e..3a45259d1f 100644 --- a/Rubberduck.Inspections/Concrete/ObsoleteTypeHintInspection.cs +++ b/Rubberduck.Inspections/Concrete/ObsoleteTypeHintInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/OptionBaseInspection.cs b/Rubberduck.Inspections/Concrete/OptionBaseInspection.cs index 944b78fa76..aa1012694b 100644 --- a/Rubberduck.Inspections/Concrete/OptionBaseInspection.cs +++ b/Rubberduck.Inspections/Concrete/OptionBaseInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs index 50e084cf71..5cffe80526 100644 --- a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs +++ b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Common; @@ -125,29 +124,16 @@ private static bool IsUsedAsByRefParam(IEnumerable declarations, De .GroupBy(call => call.Declaration) .ToList(); // only check a procedure once. its declaration doesn't change if it's called 20 times anyway. - foreach (var item in procedureCalls) - { - var calledProcedureArgs = items - .Where(arg => arg.DeclarationType == DeclarationType.Parameter && arg.ParentScope == item.Key.Scope) - .OrderBy(arg => arg.Selection.StartLine) - .ThenBy(arg => arg.Selection.StartColumn) - .ToArray(); - - foreach (var declaration in calledProcedureArgs) - { - if (((VBAParser.ArgContext)declaration.Context).BYVAL() != null) - { - continue; - } - - if (declaration.References.Any(reference => reference.IsAssignment)) - { - return true; - } - } - } - - return false; + //TODO convert to method syntax + return (from item in procedureCalls + from declaration in items + .Where(arg => arg.DeclarationType == DeclarationType.Parameter && arg.ParentScope == item.Key.Scope) + .OrderBy(arg => arg.Selection.StartLine) + .ThenBy(arg => arg.Selection.StartColumn) + .ToArray() + where ((VBAParser.ArgContext)declaration.Context).BYVAL() == null + select declaration) + .Any(dec => dec.References.Any(reference => reference.IsAssignment)); } } } diff --git a/Rubberduck.Inspections/Concrete/ParameterNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/ParameterNotUsedInspection.cs index e4e2fef08b..f4f5660c70 100644 --- a/Rubberduck.Inspections/Concrete/ParameterNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/ParameterNotUsedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Common; diff --git a/Rubberduck.Inspections/Concrete/ProcedureCanBeWrittenAsFunctionInspection.cs b/Rubberduck.Inspections/Concrete/ProcedureCanBeWrittenAsFunctionInspection.cs index ce473f44bd..a66c2c9d71 100644 --- a/Rubberduck.Inspections/Concrete/ProcedureCanBeWrittenAsFunctionInspection.cs +++ b/Rubberduck.Inspections/Concrete/ProcedureCanBeWrittenAsFunctionInspection.cs @@ -1,8 +1,6 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; -using NLog; using Rubberduck.Common; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; @@ -18,8 +16,6 @@ namespace Rubberduck.Inspections.Concrete { public sealed class ProcedureCanBeWrittenAsFunctionInspection : ParseTreeInspectionBase { - private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - public ProcedureCanBeWrittenAsFunctionInspection(RubberduckParserState state) : base(state, CodeInspectionSeverity.Suggestion) { diff --git a/Rubberduck.Inspections/Concrete/ProcedureNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/ProcedureNotUsedInspection.cs index 57779dc2e4..c5790eec85 100644 --- a/Rubberduck.Inspections/Concrete/ProcedureNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/ProcedureNotUsedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Common; @@ -67,7 +66,7 @@ protected override IEnumerable DoGetInspectionResults() issue)); issues = DocumentEventHandlerPrefixes - .Aggregate(issues, (current, item) => current.Where(issue => !issue.Description.Contains("'" + item))); + .Aggregate(issues, (current, item) => current.Where(issue => !issue.Description.Contains($"'{item}"))); return issues.ToList(); } diff --git a/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs b/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs index 8b32dc3608..e069fbfb8e 100644 --- a/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs +++ b/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using Rubberduck.Inspections.Abstract; @@ -91,26 +90,20 @@ private static bool DeclarationIsPartOfBuiltInEventHandler(Declaration declarati return true; } - var parameterDeclaration = declaration as ParameterDeclaration; - - return parameterDeclaration != null && builtInEventHandlers.Contains(parameterDeclaration.ParentDeclaration); + return declaration is ParameterDeclaration parameterDeclaration && + builtInEventHandlers.Contains(parameterDeclaration.ParentDeclaration); } private static bool DeclarationCanBeShadowed(Declaration originalDeclaration, Declaration userDeclaration, DeclarationSite originalDeclarationSite) { - if (originalDeclarationSite == DeclarationSite.NotApplicable) - { - return false; - } - - if (originalDeclarationSite == DeclarationSite.ReferencedProject) + switch (originalDeclarationSite) { - return DeclarationInReferencedProjectCanBeShadowed(originalDeclaration, userDeclaration); - } - - if (originalDeclarationSite == DeclarationSite.OtherComponent) - { - return DeclarationInAnotherComponentCanBeShadowed(originalDeclaration, userDeclaration); + case DeclarationSite.NotApplicable: + return false; + case DeclarationSite.ReferencedProject: + return DeclarationInReferencedProjectCanBeShadowed(originalDeclaration, userDeclaration); + case DeclarationSite.OtherComponent: + return DeclarationInAnotherComponentCanBeShadowed(originalDeclaration, userDeclaration); } return DeclarationInTheSameComponentCanBeShadowed(originalDeclaration, userDeclaration); @@ -158,14 +151,12 @@ private static bool DeclarationInReferencedProjectCanBeShadowed(Declaration orig if (userDeclaration.DeclarationType == DeclarationType.ClassModule) { - if (userDeclarationComponentType == ComponentType.UserForm && !ReferencedProjectTypeShadowingRelations[originalDeclaration.DeclarationType].Contains(DeclarationType.UserForm)) + switch (userDeclarationComponentType) { - return false; - } - - if (userDeclarationComponentType == ComponentType.Document && !ReferencedProjectTypeShadowingRelations[originalDeclaration.DeclarationType].Contains(DeclarationType.Document)) - { - return false; + case ComponentType.UserForm when !ReferencedProjectTypeShadowingRelations[originalDeclaration.DeclarationType].Contains(DeclarationType.UserForm): + return false; + case ComponentType.Document when !ReferencedProjectTypeShadowingRelations[originalDeclaration.DeclarationType].Contains(DeclarationType.Document): + return false; } } @@ -229,28 +220,20 @@ private static bool DeclarationInAnotherComponentCanBeShadowed(Declaration origi if (originalDeclaration.DeclarationType == DeclarationType.ClassModule) { // Syntax of instantiating a new class makes it impossible to be shadowed - if (originalDeclarationComponentType == ComponentType.ClassModule) - { - return false; - } - - if (originalDeclarationComponentType == ComponentType.UserForm && - !OtherComponentTypeShadowingRelations[DeclarationType.UserForm].Contains(userDeclaration.DeclarationType)) - { - return false; - } - - if (originalDeclarationComponentType == ComponentType.Document && - !OtherComponentTypeShadowingRelations[DeclarationType.Document].Contains(userDeclaration.DeclarationType)) - { - return false; + switch (originalDeclarationComponentType) + { + case ComponentType.ClassModule: + return false; + case ComponentType.UserForm when !OtherComponentTypeShadowingRelations[DeclarationType.UserForm].Contains(userDeclaration.DeclarationType): + return false; + case ComponentType.Document when !OtherComponentTypeShadowingRelations[DeclarationType.Document].Contains(userDeclaration.DeclarationType): + return false; } } else { - HashSet shadowedTypes; if (!OtherComponentTypeShadowingRelations.TryGetValue(originalDeclaration.DeclarationType, - out shadowedTypes) + out var shadowedTypes) || !shadowedTypes.Contains(userDeclaration.DeclarationType)) { return false; @@ -276,15 +259,14 @@ private static bool DeclarationInTheSameComponentCanBeShadowed(Declaration origi } // Syntax of instantiating a new UDT makes it impossible to be shadowed - if (originalDeclaration.DeclarationType == DeclarationType.UserDefinedType) - { - return false; - } - - if (originalDeclaration.DeclarationType == DeclarationType.Parameter || originalDeclaration.DeclarationType == DeclarationType.UserDefinedTypeMember || - originalDeclaration.DeclarationType == DeclarationType.LineLabel) + switch (originalDeclaration.DeclarationType) { - return false; + case DeclarationType.UserDefinedType: + return false; + case DeclarationType.Parameter: + case DeclarationType.UserDefinedTypeMember: + case DeclarationType.LineLabel: + return false; } if ((originalDeclaration.DeclarationType == DeclarationType.Variable || originalDeclaration.DeclarationType == DeclarationType.Constant) && diff --git a/Rubberduck.Inspections/Concrete/StopKeywordInspection.cs b/Rubberduck.Inspections/Concrete/StopKeywordInspection.cs index 99d9f24b35..efebe8c883 100644 --- a/Rubberduck.Inspections/Concrete/StopKeywordInspection.cs +++ b/Rubberduck.Inspections/Concrete/StopKeywordInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; using Antlr4.Runtime.Misc; diff --git a/Rubberduck.Inspections/Concrete/UnassignedVariableUsageInspection.cs b/Rubberduck.Inspections/Concrete/UnassignedVariableUsageInspection.cs index 7d56de9f66..721b83e023 100644 --- a/Rubberduck.Inspections/Concrete/UnassignedVariableUsageInspection.cs +++ b/Rubberduck.Inspections/Concrete/UnassignedVariableUsageInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Linq; diff --git a/Rubberduck.Inspections/Concrete/UndeclaredVariableInspection.cs b/Rubberduck.Inspections/Concrete/UndeclaredVariableInspection.cs index 5c9569e529..42c313487d 100644 --- a/Rubberduck.Inspections/Concrete/UndeclaredVariableInspection.cs +++ b/Rubberduck.Inspections/Concrete/UndeclaredVariableInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/UntypedFunctionUsageInspection.cs b/Rubberduck.Inspections/Concrete/UntypedFunctionUsageInspection.cs index e444fcc807..050a81ae9b 100644 --- a/Rubberduck.Inspections/Concrete/UntypedFunctionUsageInspection.cs +++ b/Rubberduck.Inspections/Concrete/UntypedFunctionUsageInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/UseMeaningfulNameInspection.cs b/Rubberduck.Inspections/Concrete/UseMeaningfulNameInspection.cs index c48d37743b..7987120d46 100644 --- a/Rubberduck.Inspections/Concrete/UseMeaningfulNameInspection.cs +++ b/Rubberduck.Inspections/Concrete/UseMeaningfulNameInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Globalization; using System.Linq; using Rubberduck.Common; diff --git a/Rubberduck.Inspections/Concrete/VariableNotAssignedInspection.cs b/Rubberduck.Inspections/Concrete/VariableNotAssignedInspection.cs index 13a46a15ea..d438ed3cb1 100644 --- a/Rubberduck.Inspections/Concrete/VariableNotAssignedInspection.cs +++ b/Rubberduck.Inspections/Concrete/VariableNotAssignedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; diff --git a/Rubberduck.Inspections/Concrete/VariableNotUsedInspection.cs b/Rubberduck.Inspections/Concrete/VariableNotUsedInspection.cs index 7fa5e125fe..6206627bc4 100644 --- a/Rubberduck.Inspections/Concrete/VariableNotUsedInspection.cs +++ b/Rubberduck.Inspections/Concrete/VariableNotUsedInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Antlr4.Runtime; diff --git a/Rubberduck.Inspections/Concrete/VariableTypeNotDeclaredInspection.cs b/Rubberduck.Inspections/Concrete/VariableTypeNotDeclaredInspection.cs index 0315f18ba3..61038cf7fe 100644 --- a/Rubberduck.Inspections/Concrete/VariableTypeNotDeclaredInspection.cs +++ b/Rubberduck.Inspections/Concrete/VariableTypeNotDeclaredInspection.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Inspections.Results; diff --git a/Rubberduck.Inspections/Concrete/WriteOnlyPropertyInspection.cs b/Rubberduck.Inspections/Concrete/WriteOnlyPropertyInspection.cs index cb33ec7236..a8a5175c8a 100644 --- a/Rubberduck.Inspections/Concrete/WriteOnlyPropertyInspection.cs +++ b/Rubberduck.Inspections/Concrete/WriteOnlyPropertyInspection.cs @@ -1,4 +1,3 @@ -using System; using System.Collections.Generic; using System.Linq; using Rubberduck.Inspections.Abstract; From 4b1059bed805882d847ab3af810ac4750b2caf73 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:57:55 -0800 Subject: [PATCH 03/11] Rubberduck.Inspections.ParseTreeListeners --- .../ParseTreeListeners/AttributeAnnotationListener.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rubberduck.Inspections/ParseTreeListeners/AttributeAnnotationListener.cs b/Rubberduck.Inspections/ParseTreeListeners/AttributeAnnotationListener.cs index 597e809e5b..0beaefcddc 100644 --- a/Rubberduck.Inspections/ParseTreeListeners/AttributeAnnotationListener.cs +++ b/Rubberduck.Inspections/ParseTreeListeners/AttributeAnnotationListener.cs @@ -77,7 +77,7 @@ public override void ExitModule(VBAParser.ModuleContext context) public override void ExitModuleDeclarations(VBAParser.ModuleDeclarationsContext context) { var firstMember = Members.Value.Values.OrderBy(d => d.Selection).FirstOrDefault(); - if(firstMember != null) + if (firstMember != null) { CurrentScopeDeclaration = firstMember; } From 1b7827cd03c005d1a9854dc2431fd1e27772fd34 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:58:09 -0800 Subject: [PATCH 04/11] Rubberduck.Inspections.QuickFixes --- .../AddIdentifierToWhiteListQuickFix.cs | 11 ++--- .../ApplicationWorksheetFunctionQuickFix.cs | 11 ++--- ...gnedByValParameterMakeLocalCopyQuickFix.cs | 17 ++++--- .../QuickFixes/ChangeDimToPrivateQuickFix.cs | 11 ++--- .../QuickFixes/ChangeIntegerToLongQuickFix.cs | 22 +++------- .../ChangeProcedureToFunctionQuickFix.cs | 7 +-- .../QuickFixes/ConvertToProcedureQuickFix.cs | 5 +-- .../DeclareAsExplicitVariantQuickFix.cs | 5 +-- .../QuickFixes/IgnoreOnceQuickFix.cs | 5 +-- .../IntroduceLocalVariableQuickFix.cs | 5 +-- .../MakeSingleLineParameterQuickFix.cs | 5 +-- .../QuickFixes/OptionExplicitQuickFix.cs | 6 +-- .../PassParameterByReferenceQuickFix.cs | 5 +-- .../PassParameterByValueQuickFix.cs | 5 +-- .../QuickFixes/RemoveCommentQuickFix.cs | 5 +-- .../RemoveEmptyElseBlockQuickFix.cs | 13 +++--- .../QuickFixes/RemoveEmptyIfBlockQuickFix.cs | 11 ++--- .../RemoveExplicitByRefModifierQuickFix.cs | 5 +-- .../RemoveExplicitCallStatmentQuickFix.cs | 7 +-- .../RemoveExplicitLetStatementQuickFix.cs | 5 +-- .../RemoveOptionBaseStatementQuickFix.cs | 5 +-- .../QuickFixes/RemoveStopKeywordQuickFix.cs | 5 +-- .../QuickFixes/RemoveTypeHintsQuickFix.cs | 5 +-- .../RemoveUnassignedIdentifierQuickFix.cs | 5 +-- .../RemoveUnassignedVariableUsageQuickFix.cs | 5 +-- .../RemoveUnusedDeclarationQuickFix.cs | 5 +-- .../RemoveUnusedParameterQuickFix.cs | 5 +-- ...laceEmptyStringLiteralStatementQuickFix.cs | 5 +-- .../ReplaceGlobalModifierQuickFix.cs | 5 +-- ...eIfElseWithConditionalStatementQuickFix.cs | 11 ++--- .../ReplaceObsoleteCommentMarkerQuickFix.cs | 5 +-- .../ReplaceObsoleteErrorStatementQuickFix.cs | 5 +-- .../SetExplicitVariantReturnTypeQuickFix.cs | 7 +-- .../SpecifyExplicitByRefModifierQuickFix.cs | 44 +++++++++---------- .../SpecifyExplicitPublicModifierQuickFix.cs | 5 +-- .../SplitMultipleDeclarationsQuickFix.cs | 5 +-- .../SynchronizeAttributesQuickFix.cs | 7 +-- ...seSetKeywordForObjectAssignmentQuickFix.cs | 5 +-- .../QuickFixes/WriteOnlyPropertyQuickFix.cs | 18 +++++--- 39 files changed, 105 insertions(+), 218 deletions(-) diff --git a/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs b/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs index 42bfe9fd71..cb846061f3 100644 --- a/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs @@ -27,13 +27,10 @@ public override void Fix(IInspectionResult result) _settings.Save(inspectionSettings); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.WhiteListIdentifierQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.WhiteListIdentifierQuickFix; - public override bool CanFixInProcedure { get; } = false; - public override bool CanFixInModule { get; } = false; - public override bool CanFixInProject { get; } = false; + public override bool CanFixInProcedure => false; + public override bool CanFixInModule => false; + public override bool CanFixInProject => false; } } diff --git a/Rubberduck.Inspections/QuickFixes/ApplicationWorksheetFunctionQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ApplicationWorksheetFunctionQuickFix.cs index e8271b4a85..4a9eed4a03 100644 --- a/Rubberduck.Inspections/QuickFixes/ApplicationWorksheetFunctionQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ApplicationWorksheetFunctionQuickFix.cs @@ -22,13 +22,10 @@ public override void Fix(IInspectionResult result) rewriter.InsertBefore(result.Context.Start.TokenIndex, "WorksheetFunction."); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ApplicationWorksheetFunctionQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ApplicationWorksheetFunctionQuickFix; - public override bool CanFixInProcedure { get; } = true; - public override bool CanFixInModule { get; } = true; - public override bool CanFixInProject { get; } = true; + public override bool CanFixInProcedure => true; + public override bool CanFixInModule => true; + public override bool CanFixInProject => true; } } diff --git a/Rubberduck.Inspections/QuickFixes/AssignedByValParameterMakeLocalCopyQuickFix.cs b/Rubberduck.Inspections/QuickFixes/AssignedByValParameterMakeLocalCopyQuickFix.cs index cfd6264f24..c98605040d 100644 --- a/Rubberduck.Inspections/QuickFixes/AssignedByValParameterMakeLocalCopyQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/AssignedByValParameterMakeLocalCopyQuickFix.cs @@ -43,14 +43,11 @@ public override void Fix(IInspectionResult result) InsertLocalVariableDeclarationAndAssignment(rewriter, result.Target, localIdentifier); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.AssignedByValParameterMakeLocalCopyQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.AssignedByValParameterMakeLocalCopyQuickFix; - public override bool CanFixInProcedure { get; } = false; - public override bool CanFixInModule { get; } = false; - public override bool CanFixInProject { get; } = false; + public override bool CanFixInProcedure => false; + public override bool CanFixInModule => false; + public override bool CanFixInProject => false; private string PromptForLocalVariableName(Declaration target, List forbiddenNames) { @@ -76,7 +73,7 @@ private string PromptForLocalVariableName(Declaration target, List forbi private string GetDefaultLocalIdentifier(Declaration target, List forbiddenNames) { - var newName = "local" + target.IdentifierName.CapitalizeFirstLetter(); + var newName = $"local{target.IdentifierName.CapitalizeFirstLetter()}"; if (IsValidVariableName(newName, forbiddenNames)) { return newName; @@ -114,7 +111,9 @@ private void InsertLocalVariableDeclarationAndAssignment(IModuleRewriter rewrite var requiresAssignmentUsingSet = target.References.Any(refItem => VariableRequiresSetAssignmentEvaluator.RequiresSetAssignment(refItem, _parserState)); - var localVariableAssignment = requiresAssignmentUsingSet ? $"Set {localIdentifier} = {target.IdentifierName}" : $"{localIdentifier} = {target.IdentifierName}"; + var localVariableAssignment = string.Format("{0}{1}", + requiresAssignmentUsingSet ? "Set " : string.Empty, + $"{localIdentifier} = {target.IdentifierName}"); rewriter.InsertBefore(((ParserRuleContext)target.Context.Parent).Stop.TokenIndex + 1, localVariableDeclaration + localVariableAssignment); } diff --git a/Rubberduck.Inspections/QuickFixes/ChangeDimToPrivateQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ChangeDimToPrivateQuickFix.cs index 573d767128..ef9d75a6c6 100644 --- a/Rubberduck.Inspections/QuickFixes/ChangeDimToPrivateQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ChangeDimToPrivateQuickFix.cs @@ -25,13 +25,10 @@ public override void Fix(IInspectionResult result) rewriter.Replace(context.DIM(), Tokens.Private); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ChangeDimToPrivateQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ChangeDimToPrivateQuickFix; - public override bool CanFixInProcedure { get; } = false; - public override bool CanFixInModule { get; } = true; - public override bool CanFixInProject { get; } = true; + public override bool CanFixInProcedure => false; + public override bool CanFixInModule => true; + public override bool CanFixInProject => true; } } \ No newline at end of file diff --git a/Rubberduck.Inspections/QuickFixes/ChangeIntegerToLongQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ChangeIntegerToLongQuickFix.cs index 5eca777508..1b0b069071 100644 --- a/Rubberduck.Inspections/QuickFixes/ChangeIntegerToLongQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ChangeIntegerToLongQuickFix.cs @@ -57,18 +57,11 @@ public override void Fix(IInspectionResult result) break; case DeclarationType.UserDefinedTypeMember: var userDefinedTypeMemberContext = (VBAParser.UdtMemberContext)result.Context; - if (userDefinedTypeMemberContext.reservedNameMemberDeclaration() != null) - { - rewriter.Replace( - userDefinedTypeMemberContext.reservedNameMemberDeclaration().asTypeClause().type(), - Tokens.Long); - } - else - { - rewriter.Replace( - userDefinedTypeMemberContext.untypedNameMemberDeclaration().optionalArrayClause().asTypeClause().type(), - Tokens.Long); - } + rewriter.Replace( + userDefinedTypeMemberContext.reservedNameMemberDeclaration() == null + ? userDefinedTypeMemberContext.untypedNameMemberDeclaration().optionalArrayClause().asTypeClause().type() + : userDefinedTypeMemberContext.reservedNameMemberDeclaration().asTypeClause().type(), + Tokens.Long); break; } } @@ -174,10 +167,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.IntegerDataTypeQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.IntegerDataTypeQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/ChangeProcedureToFunctionQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ChangeProcedureToFunctionQuickFix.cs index 420227a451..d15294784f 100644 --- a/Rubberduck.Inspections/QuickFixes/ChangeProcedureToFunctionQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ChangeProcedureToFunctionQuickFix.cs @@ -33,10 +33,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ProcedureShouldBeFunctionInspectionQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ProcedureShouldBeFunctionInspectionQuickFix; private void UpdateSignature(Declaration target, ParameterDeclaration arg) { @@ -59,7 +56,7 @@ private void UpdateSignature(Declaration target, ParameterDeclaration arg) rewriter.InsertBefore(argContext.unrestrictedIdentifier().Start.TokenIndex, Tokens.ByVal); } - var returnStmt = " " + subStmt.subroutineName().GetText() + " = " + argContext.unrestrictedIdentifier().GetText() + Environment.NewLine; + var returnStmt = $" {subStmt.subroutineName().GetText()} = {argContext.unrestrictedIdentifier().GetText()}{Environment.NewLine}"; rewriter.InsertBefore(subStmt.END_SUB().Symbol.TokenIndex, returnStmt); } diff --git a/Rubberduck.Inspections/QuickFixes/ConvertToProcedureQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ConvertToProcedureQuickFix.cs index 0c0fb6e11c..fa2367ff3a 100644 --- a/Rubberduck.Inspections/QuickFixes/ConvertToProcedureQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ConvertToProcedureQuickFix.cs @@ -84,10 +84,7 @@ private void ConvertPropertyGet(IInspectionResult result, VBAParser.PropertyGetS } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ConvertFunctionToProcedureQuickFix; - } + public override string Description(IInspectionResult result) =>InspectionsUI.ConvertFunctionToProcedureQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/DeclareAsExplicitVariantQuickFix.cs b/Rubberduck.Inspections/QuickFixes/DeclareAsExplicitVariantQuickFix.cs index af766abfd6..cc29950f1d 100644 --- a/Rubberduck.Inspections/QuickFixes/DeclareAsExplicitVariantQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/DeclareAsExplicitVariantQuickFix.cs @@ -29,10 +29,7 @@ public override void Fix(IInspectionResult result) rewriter.InsertAfter(identifierNode.Stop.TokenIndex, " As Variant"); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.DeclareAsExplicitVariantQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.DeclareAsExplicitVariantQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/IgnoreOnceQuickFix.cs b/Rubberduck.Inspections/QuickFixes/IgnoreOnceQuickFix.cs index ed8453793a..14a381b2b0 100644 --- a/Rubberduck.Inspections/QuickFixes/IgnoreOnceQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/IgnoreOnceQuickFix.cs @@ -83,10 +83,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.IgnoreOnce; - } + public override string Description(IInspectionResult result) => InspectionsUI.IgnoreOnce; private class AnnotationListener : VBAParserBaseListener { diff --git a/Rubberduck.Inspections/QuickFixes/IntroduceLocalVariableQuickFix.cs b/Rubberduck.Inspections/QuickFixes/IntroduceLocalVariableQuickFix.cs index 38f157ef42..79aa553433 100644 --- a/Rubberduck.Inspections/QuickFixes/IntroduceLocalVariableQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/IntroduceLocalVariableQuickFix.cs @@ -27,9 +27,6 @@ public override void Fix(IInspectionResult result) _state.GetRewriter(result.Target).InsertBefore(result.Target.Context.Start.TokenIndex, instruction); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.IntroduceLocalVariableQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.IntroduceLocalVariableQuickFix; } } \ No newline at end of file diff --git a/Rubberduck.Inspections/QuickFixes/MakeSingleLineParameterQuickFix.cs b/Rubberduck.Inspections/QuickFixes/MakeSingleLineParameterQuickFix.cs index bdf0b1f62b..20406a5a37 100644 --- a/Rubberduck.Inspections/QuickFixes/MakeSingleLineParameterQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/MakeSingleLineParameterQuickFix.cs @@ -27,10 +27,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(result.Context, parameter); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.MakeSingleLineParameterQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.MakeSingleLineParameterQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/OptionExplicitQuickFix.cs b/Rubberduck.Inspections/QuickFixes/OptionExplicitQuickFix.cs index 42d70d7ac2..79717ea706 100644 --- a/Rubberduck.Inspections/QuickFixes/OptionExplicitQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/OptionExplicitQuickFix.cs @@ -24,10 +24,8 @@ public override void Fix(IInspectionResult result) rewriter.InsertBefore(0, Tokens.Option + ' ' + Tokens.Explicit + Environment.NewLine + Environment.NewLine); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.OptionExplicitQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.OptionExplicitQuickFix; + public override bool CanFixInProcedure => false; public override bool CanFixInModule => false; diff --git a/Rubberduck.Inspections/QuickFixes/PassParameterByReferenceQuickFix.cs b/Rubberduck.Inspections/QuickFixes/PassParameterByReferenceQuickFix.cs index 136663c100..aed33503fa 100644 --- a/Rubberduck.Inspections/QuickFixes/PassParameterByReferenceQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/PassParameterByReferenceQuickFix.cs @@ -25,10 +25,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(token, Tokens.ByRef); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.PassParameterByReferenceQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.PassParameterByReferenceQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/PassParameterByValueQuickFix.cs b/Rubberduck.Inspections/QuickFixes/PassParameterByValueQuickFix.cs index f3628d015f..731b619eb1 100644 --- a/Rubberduck.Inspections/QuickFixes/PassParameterByValueQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/PassParameterByValueQuickFix.cs @@ -34,10 +34,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.PassParameterByValueQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.PassParameterByValueQuickFix; private void FixMethods(Declaration target) { diff --git a/Rubberduck.Inspections/QuickFixes/RemoveCommentQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveCommentQuickFix.cs index bf81b08f62..e861af9524 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveCommentQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveCommentQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(result.Context); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveObsoleteStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveObsoleteStatementQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveEmptyElseBlockQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveEmptyElseBlockQuickFix.cs index 40403ae7d3..fbe3365cb5 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveEmptyElseBlockQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveEmptyElseBlockQuickFix.cs @@ -20,7 +20,7 @@ public RemoveEmptyElseBlockQuickFix(RubberduckParserState state) public override void Fix(IInspectionResult result) { - IModuleRewriter rewriter = _state.GetRewriter(result.QualifiedSelection.QualifiedName); + var rewriter = _state.GetRewriter(result.QualifiedSelection.QualifiedName); //dynamic used since it's not known at run-time UpdateContext((dynamic)result.Context, rewriter); @@ -36,13 +36,10 @@ private void UpdateContext(VBAParser.ElseBlockContext context, IModuleRewriter r } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveEmptyElseBlockQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveEmptyElseBlockQuickFix; - public override bool CanFixInProcedure { get; } = false; - public override bool CanFixInModule { get; } = false; - public override bool CanFixInProject { get; } = false; + public override bool CanFixInProcedure => false; + public override bool CanFixInModule => false; + public override bool CanFixInProject => false; } } diff --git a/Rubberduck.Inspections/QuickFixes/RemoveEmptyIfBlockQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveEmptyIfBlockQuickFix.cs index 002af41988..c42d2789b7 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveEmptyIfBlockQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveEmptyIfBlockQuickFix.cs @@ -174,13 +174,10 @@ private bool BlockHasDeclaration(VBAParser.BlockContext block) private bool FirstBlockStmntHasLabel(VBAParser.BlockContext block) => block.blockStmt()?.FirstOrDefault()?.statementLabelDefinition() != null; - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveEmptyIfBlockQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveEmptyIfBlockQuickFix; - public override bool CanFixInProcedure { get; } = false; - public override bool CanFixInModule { get; } = false; - public override bool CanFixInProject { get; } = false; + public override bool CanFixInProcedure => false; + public override bool CanFixInModule => false; + public override bool CanFixInProject => false; } } diff --git a/Rubberduck.Inspections/QuickFixes/RemoveExplicitByRefModifierQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveExplicitByRefModifierQuickFix.cs index 59efc844b6..47f99697e1 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveExplicitByRefModifierQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveExplicitByRefModifierQuickFix.cs @@ -59,10 +59,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RedundantByRefModifierQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RedundantByRefModifierQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveExplicitCallStatmentQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveExplicitCallStatmentQuickFix.cs index 055a5cbef4..64cc5df6e5 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveExplicitCallStatmentQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveExplicitCallStatmentQuickFix.cs @@ -33,15 +33,10 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveObsoleteStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveObsoleteStatementQuickFix; public override bool CanFixInProcedure => true; - public override bool CanFixInModule => true; - public override bool CanFixInProject => true; } } diff --git a/Rubberduck.Inspections/QuickFixes/RemoveExplicitLetStatementQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveExplicitLetStatementQuickFix.cs index 85ddd54961..2e984163d0 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveExplicitLetStatementQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveExplicitLetStatementQuickFix.cs @@ -27,10 +27,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(context.whiteSpace().First()); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveObsoleteStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveObsoleteStatementQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveOptionBaseStatementQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveOptionBaseStatementQuickFix.cs index 9279ddaac3..400ed6b314 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveOptionBaseStatementQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveOptionBaseStatementQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(result.Context); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveOptionBaseStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveOptionBaseStatementQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => false; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveStopKeywordQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveStopKeywordQuickFix.cs index 98ea3583fb..f87ebde0e1 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveStopKeywordQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveStopKeywordQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(result.Context); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveStopKeywordQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveStopKeywordQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => false; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveTypeHintsQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveTypeHintsQuickFix.cs index 2adbac5bc2..d4c324e5ca 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveTypeHintsQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveTypeHintsQuickFix.cs @@ -66,10 +66,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveTypeHintsQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveTypeHintsQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveUnassignedIdentifierQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveUnassignedIdentifierQuickFix.cs index d285ca6d64..6d0d58e755 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveUnassignedIdentifierQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveUnassignedIdentifierQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(result.Target); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveUnassignedIdentifierQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveUnassignedIdentifierQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveUnassignedVariableUsageQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveUnassignedVariableUsageQuickFix.cs index b60cf6e46e..d47da77420 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveUnassignedVariableUsageQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveUnassignedVariableUsageQuickFix.cs @@ -29,10 +29,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(assignmentContext); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveUnassignedVariableUsageQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveUnassignedVariableUsageQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveUnusedDeclarationQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveUnusedDeclarationQuickFix.cs index 87dea9bdf3..7c5499a996 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveUnusedDeclarationQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveUnusedDeclarationQuickFix.cs @@ -25,10 +25,7 @@ public override void Fix(IInspectionResult result) rewriter.Remove(result.Target); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveUnusedDeclarationQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveUnusedDeclarationQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/RemoveUnusedParameterQuickFix.cs b/Rubberduck.Inspections/QuickFixes/RemoveUnusedParameterQuickFix.cs index 3883f4b370..5acee16335 100644 --- a/Rubberduck.Inspections/QuickFixes/RemoveUnusedParameterQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/RemoveUnusedParameterQuickFix.cs @@ -35,10 +35,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveUnusedParameterQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveUnusedParameterQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/ReplaceEmptyStringLiteralStatementQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ReplaceEmptyStringLiteralStatementQuickFix.cs index 2e20e05817..b1108815c6 100644 --- a/Rubberduck.Inspections/QuickFixes/ReplaceEmptyStringLiteralStatementQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ReplaceEmptyStringLiteralStatementQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(result.Context, "vbNullString"); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.EmptyStringLiteralInspectionQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.EmptyStringLiteralInspectionQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/ReplaceGlobalModifierQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ReplaceGlobalModifierQuickFix.cs index 0890a952ab..5c31e2492d 100644 --- a/Rubberduck.Inspections/QuickFixes/ReplaceGlobalModifierQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ReplaceGlobalModifierQuickFix.cs @@ -24,10 +24,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(ParserRuleContextHelper.GetDescendent(result.Context.Parent.Parent), Tokens.Public); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ObsoleteGlobalInspectionQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ObsoleteGlobalInspectionQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/ReplaceIfElseWithConditionalStatementQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ReplaceIfElseWithConditionalStatementQuickFix.cs index 75a38ff770..c28d22a176 100644 --- a/Rubberduck.Inspections/QuickFixes/ReplaceIfElseWithConditionalStatementQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ReplaceIfElseWithConditionalStatementQuickFix.cs @@ -34,13 +34,10 @@ public override void Fix(IInspectionResult result) rewriter.Replace(result.Context, $"{letStmt.lExpression().GetText()} = {conditional}"); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ReplaceIfElseWithConditionalStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ReplaceIfElseWithConditionalStatementQuickFix; - public override bool CanFixInProcedure { get; } = true; - public override bool CanFixInModule { get; } = true; - public override bool CanFixInProject { get; } = true; + public override bool CanFixInProcedure => true; + public override bool CanFixInModule => true; + public override bool CanFixInProject => true; } } diff --git a/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteCommentMarkerQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteCommentMarkerQuickFix.cs index d3202449ce..f62b5b839a 100644 --- a/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteCommentMarkerQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteCommentMarkerQuickFix.cs @@ -25,10 +25,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(context.REM(), "'"); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.RemoveObsoleteStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.RemoveObsoleteStatementQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteErrorStatementQuickFix.cs b/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteErrorStatementQuickFix.cs index b4f826f53f..e53c9f1fe9 100644 --- a/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteErrorStatementQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/ReplaceObsoleteErrorStatementQuickFix.cs @@ -25,10 +25,7 @@ public override void Fix(IInspectionResult result) rewriter.Replace(context.ERROR(), "Err.Raise"); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ReplaceObsoleteErrorStatementQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ReplaceObsoleteErrorStatementQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/SetExplicitVariantReturnTypeQuickFix.cs b/Rubberduck.Inspections/QuickFixes/SetExplicitVariantReturnTypeQuickFix.cs index 761d593bd8..949e2d5106 100644 --- a/Rubberduck.Inspections/QuickFixes/SetExplicitVariantReturnTypeQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/SetExplicitVariantReturnTypeQuickFix.cs @@ -22,7 +22,7 @@ public override void Fix(IInspectionResult result) { var rewriter = _state.GetRewriter(result.Target); - var asTypeClause = " As Variant"; + const string asTypeClause = " As Variant"; switch (result.Target.DeclarationType) { case DeclarationType.Variable: @@ -48,10 +48,7 @@ public override void Fix(IInspectionResult result) } } - public override string Description(IInspectionResult result) - { - return InspectionsUI.SetExplicitVariantReturnTypeQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.SetExplicitVariantReturnTypeQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/SpecifyExplicitByRefModifierQuickFix.cs b/Rubberduck.Inspections/QuickFixes/SpecifyExplicitByRefModifierQuickFix.cs index 5f348bf8a2..d16bc535a6 100644 --- a/Rubberduck.Inspections/QuickFixes/SpecifyExplicitByRefModifierQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/SpecifyExplicitByRefModifierQuickFix.cs @@ -32,37 +32,37 @@ public override void Fix(IInspectionResult result) var matchingInterfaceMemberContext = interfaceMembers.Select(member => member.Context).FirstOrDefault(c => c == context.Parent.Parent); - if (matchingInterfaceMemberContext != null) + if (matchingInterfaceMemberContext == null) { - var interfaceParameterIndex = GetParameterIndex(context); + return; + } + + var interfaceParameterIndex = GetParameterIndex(context); - var implementationMembers = - _state.AllUserDeclarations.FindInterfaceImplementationMembers(interfaceMembers.First( - member => member.Context == matchingInterfaceMemberContext)).ToHashSet(); + var implementationMembers = + _state.AllUserDeclarations.FindInterfaceImplementationMembers(interfaceMembers.First( + member => member.Context == matchingInterfaceMemberContext)).ToHashSet(); - var parameters = - _state.DeclarationFinder.UserDeclarations(DeclarationType.Parameter) - .Where(p => implementationMembers.Contains(p.ParentDeclaration)) - .Cast() - .ToArray(); + var parameters = + _state.DeclarationFinder.UserDeclarations(DeclarationType.Parameter) + .Where(p => implementationMembers.Contains(p.ParentDeclaration)) + .Cast() + .ToArray(); - foreach (var parameter in parameters) - { - var parameterContext = (VBAParser.ArgContext)parameter.Context; - var parameterIndex = GetParameterIndex(parameterContext); + foreach (var parameter in parameters) + { + var parameterContext = (VBAParser.ArgContext)parameter.Context; + var parameterIndex = GetParameterIndex(parameterContext); - if (parameterIndex == interfaceParameterIndex) - { - AddByRefIdentifier(_state.GetRewriter(parameter), parameterContext); - } + if (parameterIndex == interfaceParameterIndex) + { + AddByRefIdentifier(_state.GetRewriter(parameter), parameterContext); } } + } - public override string Description(IInspectionResult result) - { - return InspectionsUI.ImplicitByRefModifierQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.ImplicitByRefModifierQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/SpecifyExplicitPublicModifierQuickFix.cs b/Rubberduck.Inspections/QuickFixes/SpecifyExplicitPublicModifierQuickFix.cs index b0751adbce..0a7b602b47 100644 --- a/Rubberduck.Inspections/QuickFixes/SpecifyExplicitPublicModifierQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/SpecifyExplicitPublicModifierQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.InsertBefore(result.Context.Start.TokenIndex, "Public "); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.SpecifyExplicitPublicModifierQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.SpecifyExplicitPublicModifierQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/SplitMultipleDeclarationsQuickFix.cs b/Rubberduck.Inspections/QuickFixes/SplitMultipleDeclarationsQuickFix.cs index 5ac8420e83..4c4fce4dac 100644 --- a/Rubberduck.Inspections/QuickFixes/SplitMultipleDeclarationsQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/SplitMultipleDeclarationsQuickFix.cs @@ -74,10 +74,7 @@ private string GetDeclarationsText(VBAParser.VariableStmtContext variables) return newContent.ToString(); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.SplitMultipleDeclarationsQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.SplitMultipleDeclarationsQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/SynchronizeAttributesQuickFix.cs b/Rubberduck.Inspections/QuickFixes/SynchronizeAttributesQuickFix.cs index bf63877902..f5ee96e406 100644 --- a/Rubberduck.Inspections/QuickFixes/SynchronizeAttributesQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/SynchronizeAttributesQuickFix.cs @@ -220,7 +220,7 @@ private int FindInsertPosition(VBAParser.AnnotationContext context) private string GetAttributeInstruction(VBAParser.AnnotationContext context, string attributeName, AnnotationType annotationType) { - string attributeInstruction = string.Empty; + var attributeInstruction = string.Empty; if (annotationType.HasFlag(AnnotationType.ModuleAnnotation)) { @@ -258,10 +258,7 @@ private string GetAttributeInstruction(VBAParser.AnnotationContext context, stri return attributeInstruction; } - public override string Description(IInspectionResult result) - { - return InspectionsUI.SynchronizeAttributesQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.SynchronizeAttributesQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/UseSetKeywordForObjectAssignmentQuickFix.cs b/Rubberduck.Inspections/QuickFixes/UseSetKeywordForObjectAssignmentQuickFix.cs index 769c79b419..a46371c9fc 100644 --- a/Rubberduck.Inspections/QuickFixes/UseSetKeywordForObjectAssignmentQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/UseSetKeywordForObjectAssignmentQuickFix.cs @@ -22,10 +22,7 @@ public override void Fix(IInspectionResult result) rewriter.InsertBefore(result.Context.Start.TokenIndex, "Set "); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.SetObjectVariableQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.SetObjectVariableQuickFix; public override bool CanFixInProcedure => true; public override bool CanFixInModule => true; diff --git a/Rubberduck.Inspections/QuickFixes/WriteOnlyPropertyQuickFix.cs b/Rubberduck.Inspections/QuickFixes/WriteOnlyPropertyQuickFix.cs index 18983e3da6..2084839c00 100644 --- a/Rubberduck.Inspections/QuickFixes/WriteOnlyPropertyQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/WriteOnlyPropertyQuickFix.cs @@ -25,17 +25,18 @@ public override void Fix(IInspectionResult result) var parameters = ((IParameterizedDeclaration) result.Target).Parameters.Cast().ToList(); var signatureParams = parameters.Except(new[] {parameters.Last()}).Select(GetParamText); - var propertyGet = "Public Property Get " + result.Target.IdentifierName + "(" + string.Join(", ", signatureParams) + ") As " + - parameters.Last().AsTypeName + Environment.NewLine + "End Property" + Environment.NewLine + Environment.NewLine; + + var propertyGet = string.Format("Public Property Get {0}({1}) As {2}{3}End Property{3}{3}", + result.Target.IdentifierName, + string.Join(", ", signatureParams), + parameters.Last().AsTypeName, + Environment.NewLine); var rewriter = _state.GetRewriter(result.Target); rewriter.InsertBefore(result.Target.Context.Start.TokenIndex, propertyGet); } - public override string Description(IInspectionResult result) - { - return InspectionsUI.WriteOnlyPropertyQuickFix; - } + public override string Description(IInspectionResult result) => InspectionsUI.WriteOnlyPropertyQuickFix; public override bool CanFixInProcedure => false; public override bool CanFixInModule => true; @@ -43,7 +44,10 @@ public override string Description(IInspectionResult result) private string GetParamText(ParameterDeclaration param) { - return (((VBAParser.ArgContext)param.Context).BYVAL() == null ? "ByRef " : "ByVal ") + param.IdentifierName + " As " + param.AsTypeName; + return string.Format("{0} {1} As {2}", + ((VBAParser.ArgContext)param.Context).BYVAL() == null ? "ByRef" : "ByVal", + param.IdentifierName, + param.AsTypeName); } } } From 26d3dfb6ef9e7d62b5c2701618764cad14941534 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:58:32 -0800 Subject: [PATCH 05/11] Rubberduck.Inspections.Results --- .../Results/DeclarationInspectionResult.cs | 11 ++++------- .../Results/IdentifierReferenceInspectionResult.cs | 2 +- .../Results/QualifiedContextInspectionResult.cs | 3 +-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Rubberduck.Inspections/Results/DeclarationInspectionResult.cs b/Rubberduck.Inspections/Results/DeclarationInspectionResult.cs index ed2cb08c75..c7e021c2d1 100644 --- a/Rubberduck.Inspections/Results/DeclarationInspectionResult.cs +++ b/Rubberduck.Inspections/Results/DeclarationInspectionResult.cs @@ -7,7 +7,7 @@ namespace Rubberduck.Inspections.Results { - class DeclarationInspectionResult : InspectionResultBase + internal class DeclarationInspectionResult : InspectionResultBase { public DeclarationInspectionResult(IInspection inspection, string description, Declaration target, QualifiedContext context = null, Dictionary properties = null) : base(inspection, @@ -28,12 +28,9 @@ class DeclarationInspectionResult : InspectionResultBase return null; } - if (target.DeclarationType.HasFlag(DeclarationType.Member)) - { - return target.QualifiedName; - } - - return GetQualifiedMemberName(target.ParentDeclaration); + return target.DeclarationType.HasFlag(DeclarationType.Member) + ? target.QualifiedName + : GetQualifiedMemberName(target.ParentDeclaration); } } } diff --git a/Rubberduck.Inspections/Results/IdentifierReferenceInspectionResult.cs b/Rubberduck.Inspections/Results/IdentifierReferenceInspectionResult.cs index c684730d67..dc867286b2 100644 --- a/Rubberduck.Inspections/Results/IdentifierReferenceInspectionResult.cs +++ b/Rubberduck.Inspections/Results/IdentifierReferenceInspectionResult.cs @@ -9,7 +9,7 @@ namespace Rubberduck.Inspections.Results { - class IdentifierReferenceInspectionResult : InspectionResultBase + internal class IdentifierReferenceInspectionResult : InspectionResultBase { public IdentifierReferenceInspectionResult(IInspection inspection, string description, RubberduckParserState state, IdentifierReference reference, Dictionary properties = null) : base(inspection, diff --git a/Rubberduck.Inspections/Results/QualifiedContextInspectionResult.cs b/Rubberduck.Inspections/Results/QualifiedContextInspectionResult.cs index 00ff1a1c31..a222dba6af 100644 --- a/Rubberduck.Inspections/Results/QualifiedContextInspectionResult.cs +++ b/Rubberduck.Inspections/Results/QualifiedContextInspectionResult.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Linq; using Rubberduck.Inspections.Abstract; using Rubberduck.Parsing; using Rubberduck.Parsing.Inspections.Abstract; @@ -7,7 +6,7 @@ namespace Rubberduck.Inspections.Results { - class QualifiedContextInspectionResult : InspectionResultBase + internal class QualifiedContextInspectionResult : InspectionResultBase { public QualifiedContextInspectionResult(IInspection inspection, string description, QualifiedContext context, Dictionary properties = null) : base(inspection, From 499ad93c5fb301d33843fd9ed25257431b9d7a5a Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 17:58:48 -0800 Subject: [PATCH 06/11] Rubberduck.Inspections --- Rubberduck.Inspections/Inspector.cs | 2 +- Rubberduck.Inspections/QuickFixProvider.cs | 6 ++-- .../VariableRequiresSetAssignmentEvaluator.cs | 30 +++++++++++++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Rubberduck.Inspections/Inspector.cs b/Rubberduck.Inspections/Inspector.cs index 6025778fce..bb119ecb2f 100644 --- a/Rubberduck.Inspections/Inspector.cs +++ b/Rubberduck.Inspections/Inspector.cs @@ -25,7 +25,7 @@ public class Inspector : IInspector private readonly IGeneralConfigService _configService; private readonly List _inspections; - private readonly int AGGREGATION_THRESHOLD = 128; + private const int AGGREGATION_THRESHOLD = 128; public Inspector(IGeneralConfigService configService, IEnumerable inspections) { diff --git a/Rubberduck.Inspections/QuickFixProvider.cs b/Rubberduck.Inspections/QuickFixProvider.cs index 4bb4a930ea..3aba2c66d6 100644 --- a/Rubberduck.Inspections/QuickFixProvider.cs +++ b/Rubberduck.Inspections/QuickFixProvider.cs @@ -41,8 +41,10 @@ public IEnumerable QuickFixes(IInspectionResult result) return _quickFixes[result.Inspection.GetType()].Where(fix => { - string value; - if (!result.Properties.TryGetValue("DisableFixes", out value)) { return true; } + if (!result.Properties.TryGetValue("DisableFixes", out var value)) + { + return true; + } return !value.Split(',').Contains(fix.GetType().Name); }) diff --git a/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs b/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs index 3d64670267..6eb4d7f84b 100644 --- a/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs +++ b/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs @@ -22,13 +22,22 @@ public static IEnumerable GetDeclarationsPotentiallyRequiringSetAss public static bool RequiresSetAssignment(IdentifierReference reference, RubberduckParserState state) { //Not an assignment...definitely does not require a 'Set' assignment - if (!reference.IsAssignment) { return false; } + if (!reference.IsAssignment) + { + return false; + } //We know for sure it DOES NOT use 'Set' - if (!MayRequireAssignmentUsingSet(reference.Declaration)) { return false; } + if (!MayRequireAssignmentUsingSet(reference.Declaration)) + { + return false; + } //We know for sure that it DOES use 'Set' - if (RequiresAssignmentUsingSet(reference.Declaration)) { return true; } + if (RequiresAssignmentUsingSet(reference.Declaration)) + { + return true; + } //We need to look everything to understand the RHS - the assigned reference is probably a Variant var allInterestingDeclarations = GetDeclarationsPotentiallyRequiringSetAssignment(state.AllUserDeclarations); @@ -38,11 +47,20 @@ public static bool RequiresSetAssignment(IdentifierReference reference, Rubberdu private static bool MayRequireAssignmentUsingSet(Declaration declaration) { - if (declaration.DeclarationType == DeclarationType.PropertyLet) { return false; } + if (declaration.DeclarationType == DeclarationType.PropertyLet) + { + return false; + } - if (declaration.AsTypeName == Tokens.Variant) { return true; } + if (declaration.AsTypeName == Tokens.Variant) + { + return true; + } - if (declaration.IsArray) { return false; } + if (declaration.IsArray) + { + return false; + } if (declaration.AsTypeDeclaration != null) { From 89931ef31de3aef3f00768a47093a665872582a2 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 18:54:24 -0800 Subject: [PATCH 07/11] Revert based on @Hosch250's preference. --- .../Concrete/ParameterCanBeByValInspection.cs | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs index 5cffe80526..c285cdc65b 100644 --- a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs +++ b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs @@ -124,16 +124,29 @@ private static bool IsUsedAsByRefParam(IEnumerable declarations, De .GroupBy(call => call.Declaration) .ToList(); // only check a procedure once. its declaration doesn't change if it's called 20 times anyway. - //TODO convert to method syntax - return (from item in procedureCalls - from declaration in items - .Where(arg => arg.DeclarationType == DeclarationType.Parameter && arg.ParentScope == item.Key.Scope) - .OrderBy(arg => arg.Selection.StartLine) - .ThenBy(arg => arg.Selection.StartColumn) - .ToArray() - where ((VBAParser.ArgContext)declaration.Context).BYVAL() == null - select declaration) - .Any(dec => dec.References.Any(reference => reference.IsAssignment)); + foreach (var item in procedureCalls) + { + var calledProcedureArgs = items + .Where(arg => arg.DeclarationType == DeclarationType.Parameter && arg.ParentScope == item.Key.Scope) + .OrderBy(arg => arg.Selection.StartLine) + .ThenBy(arg => arg.Selection.StartColumn) + .ToArray(); + + foreach (var declaration in calledProcedureArgs) + { + if (((VBAParser.ArgContext) declaration.Context).BYVAL() == null) + { + continue; + } + + if (declaration.References.Any(reference => reference.IsAssignment)) + { + return true; + } + } + } + + return false; } } } From 27c157e3733962aaf497ade7eb841aaf7972c848 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 18:56:00 -0800 Subject: [PATCH 08/11] Null coalescing simplification and use of `is` keyword --- .../VariableRequiresSetAssignmentEvaluator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs b/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs index 6eb4d7f84b..42e1d153ae 100644 --- a/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs +++ b/Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs @@ -156,13 +156,13 @@ private static bool IsLetAssignment(IdentifierReference reference) private static bool IsAlreadyAssignedUsingSet(IdentifierReference reference) { var setStmtContext = ParserRuleContextHelper.GetParent(reference.Context); - return (reference.IsAssignment && setStmtContext != null && setStmtContext.SET() != null); + return (reference.IsAssignment && setStmtContext?.SET() != null); } private static string GetRHSIdentifierExpressionText(VBAParser.LetStmtContext letStmtContext) { var expression = letStmtContext.expression(); - return expression != null && expression is VBAParser.LExprContext ? expression.GetText() : string.Empty; + return expression is VBAParser.LExprContext ? expression.GetText() : string.Empty; } private static bool RHSUsesNew(VBAParser.LetStmtContext letStmtContext) From 2b03f12e7fcf67beab39f375d985883198f5cfff Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 18:56:39 -0800 Subject: [PATCH 09/11] Address @Hosch250's comment --- Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs b/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs index e069fbfb8e..7550a1950a 100644 --- a/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs +++ b/Rubberduck.Inspections/Concrete/ShadowedDeclarationInspection.cs @@ -262,7 +262,6 @@ private static bool DeclarationInTheSameComponentCanBeShadowed(Declaration origi switch (originalDeclaration.DeclarationType) { case DeclarationType.UserDefinedType: - return false; case DeclarationType.Parameter: case DeclarationType.UserDefinedTypeMember: case DeclarationType.LineLabel: From 5531e4495388c2f4e17cbc0d4d2df02e90faad7c Mon Sep 17 00:00:00 2001 From: IvenBach Date: Sun, 26 Nov 2017 19:19:36 -0800 Subject: [PATCH 10/11] Unit test caught typographical error. --- .../Concrete/ParameterCanBeByValInspection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs index c285cdc65b..8328cc3025 100644 --- a/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs +++ b/Rubberduck.Inspections/Concrete/ParameterCanBeByValInspection.cs @@ -134,7 +134,7 @@ private static bool IsUsedAsByRefParam(IEnumerable declarations, De foreach (var declaration in calledProcedureArgs) { - if (((VBAParser.ArgContext) declaration.Context).BYVAL() == null) + if (((VBAParser.ArgContext) declaration.Context).BYVAL() != null) { continue; } From a60871bccc567030da127ce39b798cd25a289c67 Mon Sep 17 00:00:00 2001 From: IvenBach Date: Tue, 12 Dec 2017 22:21:51 -0800 Subject: [PATCH 11/11] Address comment --- .../QuickFixes/AddIdentifierToWhiteListQuickFix.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs b/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs index cb846061f3..2489c14e3c 100644 --- a/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs +++ b/Rubberduck.Inspections/QuickFixes/AddIdentifierToWhiteListQuickFix.cs @@ -29,8 +29,8 @@ public override void Fix(IInspectionResult result) public override string Description(IInspectionResult result) => InspectionsUI.WhiteListIdentifierQuickFix; - public override bool CanFixInProcedure => false; - public override bool CanFixInModule => false; - public override bool CanFixInProject => false; + public override bool CanFixInProcedure { get; } = false; + public override bool CanFixInModule { get; } = false; + public override bool CanFixInProject { get; } = false; } }