From e793dc0625ccdaec5d7eceedf478eb3686f57a65 Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Sat, 30 Mar 2019 23:34:25 -0400 Subject: [PATCH 01/47] added detailed xmldoc --- .../ApplicationWorksheetFunctionInspection.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Rubberduck.CodeAnalysis/Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs b/Rubberduck.CodeAnalysis/Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs index 75e669a35f..35259633fe 100644 --- a/Rubberduck.CodeAnalysis/Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs +++ b/Rubberduck.CodeAnalysis/Inspections/Concrete/ApplicationWorksheetFunctionInspection.cs @@ -11,6 +11,46 @@ namespace Rubberduck.Inspections.Concrete { + /// + /// Warns about late-bound WorksheetFunction calls made against the extended interface of the Application object. + /// + /// + /// An early-bound, equivalent function likely exists in the object returned by the Application.WorksheetFunction property; + /// late-bound member calls will fail at run-time with error 438 if there is a typo (a typo fails to compile for an early-bound member call). + /// Late-bound worksheet functions will return a Variant/Error given invalid inputs; + /// the equivalent early-bound member calls raise a more VB-idiomatic runtime error given the same invalid inputs. + /// A Variant/Error value cannot be coerced into any other data type, be it for assignment or comparison. + /// Trying to compare or assign a Variant/Error to another data type will throw error 13 "type mismatch" at run-time. + /// Consider using the early-bound equivalent function instead. + /// + /// + /// This inspection means to flag the following example late-bound WorksheetFunction calls: + /// + /// Private Sub Example() + /// Debug.Print Application.Sum(Array(1, 2, 3), 4, 5, "ABC") ' outputs "Error 2015" + /// + /// Dim foo As Long + /// foo = Application.Sum(Array(1, 2, 3), 4, 5, "ABC") ' error 13 "type mismatch". Variant/Error can't be coerced to Long. + /// + /// If Application.Sum(Array(1, 2, 3), 4, 5, "ABC") > 15 Then + /// ' won't run, error 13 "type mismatch" will be thrown when Variant/Error is compared to an Integer. + /// End If + /// End Sub + /// + /// The following early-bound WorksheetFunction calls should not trip this inspection. Note the consistent error, thrown at the same point every time: + /// + /// Private Sub Example() + /// Debug.Print Application.WorksheetFunction.Sum(Array(1, 2, 3), 4, 5, "ABC") ' throws error 1004 + /// + /// Dim foo As Long + /// foo = Application.WorksheetFunction.Sum(Array(1, 2, 3), 4, 5, "ABC") ' throws error 1004 + /// + /// If Application.WorksheetFunction.Sum(Array(1, 2, 3), 4, 5, "ABC") > 15 Then ' throws error 1004 + /// ' won't run, error 1004 is thrown when "ABC" is processed by WorksheetFunction.Sum, before it returns. + /// End If + /// End Sub + /// + /// [RequiredLibrary("Excel")] public class ApplicationWorksheetFunctionInspection : InspectionBase { From 88ab7647faa3746531731f87470715ac96828c9b Mon Sep 17 00:00:00 2001 From: Max Doerner Date: Sat, 27 Apr 2019 03:18:06 +0200 Subject: [PATCH 02/47] Only trace the ComSafe if TRACE_COM_SAFE is specified Previously it was always the case in debug. --- .../SerializeProjectsCommandMenuItem.cs | 6 +++--- Rubberduck.VBEEditor/ComManagement/ComSafeBase.cs | 4 ++-- Rubberduck.VBEEditor/ComManagement/IComSafe.cs | 4 ++-- .../ComManagement/StrongComSafe.cs | 15 +++++++++------ Rubberduck.VBEEditor/ComManagement/WeakComSafe.cs | 12 ++++++------ 5 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Rubberduck.Core/UI/Command/MenuItems/CommandBars/SerializeProjectsCommandMenuItem.cs b/Rubberduck.Core/UI/Command/MenuItems/CommandBars/SerializeProjectsCommandMenuItem.cs index 2d735d64bb..aba8ecc57a 100644 --- a/Rubberduck.Core/UI/Command/MenuItems/CommandBars/SerializeProjectsCommandMenuItem.cs +++ b/Rubberduck.Core/UI/Command/MenuItems/CommandBars/SerializeProjectsCommandMenuItem.cs @@ -77,9 +77,9 @@ protected override void OnExecute(object parameter) _serializationProvider.SerializeProject(library); } -#if DEBUG - //This block must be inside a DEBUG block because the Serialize method - //called is conditionally compiled and available only for a DEBUG build. +#if TRACE_COM_SAFE + //This block must be inside a conditional compilation block because the Serialize method + //called is conditionally compiled and available only if the compilation constant TRACE_COM_SAFE is set. var path = !string.IsNullOrWhiteSpace(_serializationProvider.Target) ? Path.GetDirectoryName(_serializationProvider.Target) : Path.GetTempPath(); diff --git a/Rubberduck.VBEEditor/ComManagement/ComSafeBase.cs b/Rubberduck.VBEEditor/ComManagement/ComSafeBase.cs index 52b48626bc..367704f043 100644 --- a/Rubberduck.VBEEditor/ComManagement/ComSafeBase.cs +++ b/Rubberduck.VBEEditor/ComManagement/ComSafeBase.cs @@ -32,7 +32,7 @@ public void Dispose() protected virtual void Dispose(bool disposing) { -#if DEBUG +#if TRACE_COM_SAFE if (_disposed) { return; @@ -70,7 +70,7 @@ protected virtual void Dispose(bool disposing) #endif } -#if DEBUG +#if TRACE_COM_SAFE private struct TraceData { internal int HashCode { get; set; } diff --git a/Rubberduck.VBEEditor/ComManagement/IComSafe.cs b/Rubberduck.VBEEditor/ComManagement/IComSafe.cs index 1cde0699fe..13a8b44e0b 100644 --- a/Rubberduck.VBEEditor/ComManagement/IComSafe.cs +++ b/Rubberduck.VBEEditor/ComManagement/IComSafe.cs @@ -7,9 +7,9 @@ public interface IComSafe: IDisposable { void Add(ISafeComWrapper comWrapper); bool TryRemove(ISafeComWrapper comWrapper); -#if DEBUG +#if TRACE_COM_SAFE /// - /// Available in DEBUG build only. Provide a mechanism for serializing both + /// Available only if the compilation constant TRACE_COM_SAFE is set. Provide a mechanism for serializing both /// a snapshot of the COM safe at the instant and a historical activity log /// with a limited stack trace for each entry. /// diff --git a/Rubberduck.VBEEditor/ComManagement/StrongComSafe.cs b/Rubberduck.VBEEditor/ComManagement/StrongComSafe.cs index fa1e19b03f..d979ad98f3 100644 --- a/Rubberduck.VBEEditor/ComManagement/StrongComSafe.cs +++ b/Rubberduck.VBEEditor/ComManagement/StrongComSafe.cs @@ -1,8 +1,11 @@ using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Linq; using Rubberduck.VBEditor.SafeComWrappers.Abstract; +#if TRACE_COM_SAFE +using System.Linq; +using System.Collections.Generic; +#endif + namespace Rubberduck.VBEditor.ComManagement { public class StrongComSafe: ComSafeBase @@ -19,14 +22,14 @@ public override void Add(ISafeComWrapper comWrapper) comWrapper, key => { -#if DEBUG +#if TRACE_COM_SAFE TraceAdd(comWrapper); #endif return 1; }, (key, value) => { -#if DEBUG +#if TRACE_COM_SAFE TraceUpdate(comWrapper); #endif return value; @@ -42,7 +45,7 @@ public override bool TryRemove(ISafeComWrapper comWrapper) } var result = _comWrapperCache.TryRemove(comWrapper, out _); -#if DEBUG +#if TRACE_COM_SAFE TraceRemove(comWrapper, result); #endif return result; @@ -67,7 +70,7 @@ protected override void Dispose(bool disposing) _comWrapperCache.Clear(); } -#if DEBUG +#if TRACE_COM_SAFE protected override IDictionary GetWrappers() { return _comWrapperCache.Keys.ToDictionary(GetComWrapperObjectHashCode); diff --git a/Rubberduck.VBEEditor/ComManagement/WeakComSafe.cs b/Rubberduck.VBEEditor/ComManagement/WeakComSafe.cs index 54200ffb86..d74b3aa58f 100644 --- a/Rubberduck.VBEEditor/ComManagement/WeakComSafe.cs +++ b/Rubberduck.VBEEditor/ComManagement/WeakComSafe.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Concurrent; -using System.Collections.Generic; using Rubberduck.VBEditor.SafeComWrappers.Abstract; -#if DEBUG +#if TRACE_COM_SAFE using System.Linq; +using System.Collections.Generic; #endif namespace Rubberduck.VBEditor.ComManagement @@ -22,14 +22,14 @@ public override void Add(ISafeComWrapper comWrapper) GetComWrapperObjectHashCode(comWrapper), key => { -#if DEBUG +#if TRACE_COM_SAFE TraceAdd(comWrapper); #endif return (DateTime.UtcNow, new WeakReference(comWrapper)); }, (key, value) => { -#if DEBUG +#if TRACE_COM_SAFE TraceUpdate(comWrapper); #endif return (value.insertTime, new WeakReference(comWrapper)); @@ -46,7 +46,7 @@ public override bool TryRemove(ISafeComWrapper comWrapper) } var result = _comWrapperCache.TryRemove(GetComWrapperObjectHashCode(comWrapper), out _); -#if DEBUG +#if TRACE_COM_SAFE TraceRemove(comWrapper, result); #endif return result; @@ -74,7 +74,7 @@ protected override void Dispose(bool disposing) _comWrapperCache.Clear(); } -#if DEBUG +#if TRACE_COM_SAFE protected override IDictionary GetWrappers() { var dictionary = new Dictionary(); From a63a41c94e435a9df69a0f8398543fb2312646b1 Mon Sep 17 00:00:00 2001 From: Max Doerner Date: Sat, 27 Apr 2019 03:18:39 +0200 Subject: [PATCH 03/47] Use default encoding when substituting code via the file --- .../SourceFileHandlerComponentSourceCodeHandlerAdapter.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Rubberduck.VBEEditor/SourceCodeHandling/SourceFileHandlerComponentSourceCodeHandlerAdapter.cs b/Rubberduck.VBEEditor/SourceCodeHandling/SourceFileHandlerComponentSourceCodeHandlerAdapter.cs index b122d031f1..e8e09ca12f 100644 --- a/Rubberduck.VBEEditor/SourceCodeHandling/SourceFileHandlerComponentSourceCodeHandlerAdapter.cs +++ b/Rubberduck.VBEEditor/SourceCodeHandling/SourceFileHandlerComponentSourceCodeHandlerAdapter.cs @@ -1,4 +1,5 @@ using System.IO; +using System.Text; using Rubberduck.VBEditor.SafeComWrappers; using Rubberduck.VBEditor.SafeComWrappers.Abstract; @@ -31,7 +32,7 @@ public IVBComponent SubstituteCode(IVBComponent module, string newCode) { return module; } - File.WriteAllText(fileName, newCode); + File.WriteAllText(fileName, newCode, Encoding.Default); return _tempSourceFileHandler.ImportAndCleanUp(module, fileName); } } From 3a6f3bebd8cf94c1c8b851a189c65526f8f79140 Mon Sep 17 00:00:00 2001 From: bclothier Date: Sun, 28 Apr 2019 13:38:48 -0500 Subject: [PATCH 04/47] Hotfix to TodoExplorer causing a reparse during the startup which cause problems. This converts the RefreshCommand into a CommandBase, so it is property-injected rather than newed up directly. --- Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs b/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs index 53bb0a1a36..4f1bdd4e2b 100644 --- a/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs +++ b/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs @@ -49,6 +49,12 @@ public sealed class ToDoExplorerViewModel : ViewModelBase, INavigateSelection, I _uiDispatcher = uiDispatcher; _state.StateChanged += HandleStateChanged; + RefreshCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), + _ => + { + _state.OnParseRequested(this); + }, + _ => _state.IsDirty()); NavigateCommand = new NavigateCommand(selectionService); RemoveCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), ExecuteRemoveCommand, CanExecuteRemoveCommand); CollapseAllCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), ExecuteCollapseAll); @@ -131,7 +137,7 @@ private void HandleStateChanged(object sender, EventArgs e) public INavigateCommand NavigateCommand { get; } - public ReparseCommand RefreshCommand { get; set; } + public CommandBase RefreshCommand { get; set; } public CommandBase RemoveCommand { get; } From c837169df4675f9d70e1c1c4b951ddac93efe884 Mon Sep 17 00:00:00 2001 From: SonGokussj4 Date: Mon, 29 Apr 2019 09:13:07 +0200 Subject: [PATCH 05/47] added czech transl for missing strings; few eng fixes --- Rubberduck.Resources/RubberduckUI.Designer.cs | 8 ++-- Rubberduck.Resources/RubberduckUI.cs.resx | 41 ++++++++++++++++++- Rubberduck.Resources/RubberduckUI.resx | 8 ++-- Rubberduck.Resources/Templates.cs.resx | 13 +----- 4 files changed, 49 insertions(+), 21 deletions(-) diff --git a/Rubberduck.Resources/RubberduckUI.Designer.cs b/Rubberduck.Resources/RubberduckUI.Designer.cs index 0fd25ba52a..fb032f8380 100644 --- a/Rubberduck.Resources/RubberduckUI.Designer.cs +++ b/Rubberduck.Resources/RubberduckUI.Designer.cs @@ -2202,7 +2202,7 @@ public class RubberduckUI { } /// - /// Looks up a localized string similar to The target '{0}'is already a field.. + /// Looks up a localized string similar to The target '{0}' is already a field.. /// public static string IntroduceFieldFailed_TargetIsAlreadyAField { get { @@ -2229,7 +2229,7 @@ public class RubberduckUI { } /// - /// Looks up a localized string similar to The target '{0}'is not contained in a method.. + /// Looks up a localized string similar to The target '{0}' is not contained in a method.. /// public static string IntroduceParameterFailed_TargetNotContainedInMethod { get { @@ -2441,7 +2441,7 @@ public class RubberduckUI { } /// - /// Looks up a localized string similar to The method using '{0}' already has the declaration '{1}'' of the same name in scope.. + /// Looks up a localized string similar to The method using '{0}' already has the declaration '{1}' of the same name in scope.. /// public static string MoveCloserToUsageFailure_ReferencingMethodHasSameNameDeclarationInScope { get { @@ -3651,7 +3651,7 @@ public class RubberduckUI { } /// - /// Looks up a localized string similar to Target control '{0}' not found,. + /// Looks up a localized string similar to Target control '{0}' not found.. /// public static string RenameFailure_TargetContriolNotFound { get { diff --git a/Rubberduck.Resources/RubberduckUI.cs.resx b/Rubberduck.Resources/RubberduckUI.cs.resx index 61927795e6..f07f7eda02 100644 --- a/Rubberduck.Resources/RubberduckUI.cs.resx +++ b/Rubberduck.Resources/RubberduckUI.cs.resx @@ -1355,6 +1355,45 @@ End Enum Filtr - Metoda používající '{0}' má již jinou deklaraci stejného jména v rozsahu. + Metoda používající '{0}' má již jinou deklaraci '{1}' stejného jména v rozsahu. + + + Refaktorování selhalo. + + + Neexistuje žádný aktivní výběr. + + + Vybraný cíl nejde refaktorovat. + + + Cílová deklarace je 'Null' + + + Nebyl vybrán žádný příkaz implementace. + + + Cílový control '{0}' nebyl nalezen. + + + Pro cílový modul '{0}' nebyl nalezen žádný kódový modul. + + + Cíl '{0}' je standardní ovladač událostí, který nemůže být přejmenován. + + + Cíl není uživatelsky definován. + + + Cíl '{0}' je již pole. + + + Cíl '{0}' není obsažen v metodě. + + + Deklarace typu cíle '{0}' je '{1}' namísto očekávaného '{2}'. + + + Typ deklarace cíle '{0}' je '{1}' namísto jednoho z očekávaných '{2}'. \ No newline at end of file diff --git a/Rubberduck.Resources/RubberduckUI.resx b/Rubberduck.Resources/RubberduckUI.resx index 99f14d1ee6..1ffa4a2d34 100644 --- a/Rubberduck.Resources/RubberduckUI.resx +++ b/Rubberduck.Resources/RubberduckUI.resx @@ -1513,7 +1513,7 @@ NOTE: Restart is required for the setting to take effect. {0}: Variable Name - The method using '{0}' already has the declaration '{1}'' of the same name in scope. + The method using '{0}' already has the declaration '{1}' of the same name in scope. {0}: Variable Name; {1}: name of conflicting declaration @@ -1564,7 +1564,7 @@ NOTE: Restart is required for the setting to take effect. {0}: name of module - Target control '{0}' not found, + Target control '{0}' not found. {0}: name of control @@ -1583,11 +1583,11 @@ NOTE: Restart is required for the setting to take effect. No implements selected. - The target '{0}'is already a field. + The target '{0}' is already a field. {0}: name of target - The target '{0}'is not contained in a method. + The target '{0}' is not contained in a method. {0}: name of target diff --git a/Rubberduck.Resources/Templates.cs.resx b/Rubberduck.Resources/Templates.cs.resx index 4b2b5c988e..2bd9f3b38e 100644 --- a/Rubberduck.Resources/Templates.cs.resx +++ b/Rubberduck.Resources/Templates.cs.resx @@ -127,18 +127,7 @@ Přidá modul třídy, který je předdeklarovaný a může být tedy použit bez nutnosti do něj napsat hlavičku. - VERSION 1.0 CLASS -BEGIN - MultiUse = -1 'True -END -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Attribute VB_Ext_KEY = "Rubberduck", "Predeclared Class Module" - -Option Explicit -'@PredeclaredId + Do not translate \ No newline at end of file From fee05aa90e8b7226001a39ee8aa1bf799926e68a Mon Sep 17 00:00:00 2001 From: bclothier Date: Mon, 29 Apr 2019 23:29:43 -0500 Subject: [PATCH 06/47] Improve the execution condition for the Todo refresh --- .../UI/ToDoItems/ToDoExplorerViewModel.cs | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs b/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs index 4f1bdd4e2b..ca8026f128 100644 --- a/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs +++ b/Rubberduck.Core/UI/ToDoItems/ToDoExplorerViewModel.cs @@ -52,9 +52,31 @@ public sealed class ToDoExplorerViewModel : ViewModelBase, INavigateSelection, I RefreshCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => { - _state.OnParseRequested(this); + switch(_state.Status) + { + case ParserState.Ready: + case ParserState.Error: + case ParserState.ResolverError: + case ParserState.UnexpectedError: + case ParserState.Pending: + _state.OnParseRequested(this); + break; + } }, - _ => _state.IsDirty()); + _ => + { + switch (_state.Status) + { + case ParserState.Ready: + case ParserState.Error: + case ParserState.ResolverError: + case ParserState.UnexpectedError: + case ParserState.Pending: + return true; + default: + return false; + } + }); NavigateCommand = new NavigateCommand(selectionService); RemoveCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), ExecuteRemoveCommand, CanExecuteRemoveCommand); CollapseAllCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), ExecuteCollapseAll); From ef97758d2166e7bae1077ad54baf4389c8e7ee8d Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Tue, 30 Apr 2019 21:02:59 -0400 Subject: [PATCH 07/47] added QuickFixAttribute --- .../QuickFixes/QuickFixProvider.cs | 11 ++++++++--- .../Inspections/Abstract/IQuickFixProvider.cs | 2 ++ .../Inspections/CannotAnnotateAttribute.cs | 11 +++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/Rubberduck.CodeAnalysis/QuickFixes/QuickFixProvider.cs b/Rubberduck.CodeAnalysis/QuickFixes/QuickFixProvider.cs index f52cc5c8e2..0c4030700f 100644 --- a/Rubberduck.CodeAnalysis/QuickFixes/QuickFixProvider.cs +++ b/Rubberduck.CodeAnalysis/QuickFixes/QuickFixProvider.cs @@ -36,14 +36,19 @@ public QuickFixProvider(IRewritingManager rewritingManager, IQuickFixFailureNoti } } - public IEnumerable QuickFixes(IInspectionResult result) + public IEnumerable QuickFixes(Type inspectionType) { - if (!_quickFixes.ContainsKey(result.Inspection.GetType())) + if (!_quickFixes.ContainsKey(inspectionType)) { return Enumerable.Empty(); } - return _quickFixes[result.Inspection.GetType()].Where(fix => + return _quickFixes[inspectionType]; + } + + public IEnumerable QuickFixes(IInspectionResult result) + { + return QuickFixes(result.Inspection.GetType()).Where(fix => { string value; try diff --git a/Rubberduck.Parsing/Inspections/Abstract/IQuickFixProvider.cs b/Rubberduck.Parsing/Inspections/Abstract/IQuickFixProvider.cs index bef2b57611..75d2cf8149 100644 --- a/Rubberduck.Parsing/Inspections/Abstract/IQuickFixProvider.cs +++ b/Rubberduck.Parsing/Inspections/Abstract/IQuickFixProvider.cs @@ -9,6 +9,8 @@ namespace Rubberduck.Parsing.Inspections.Abstract /// public interface IQuickFixProvider { + IEnumerable QuickFixes(Type inspectionType); + IEnumerable QuickFixes(IInspectionResult result); void Fix(IQuickFix fix, IInspectionResult result); diff --git a/Rubberduck.Parsing/Inspections/CannotAnnotateAttribute.cs b/Rubberduck.Parsing/Inspections/CannotAnnotateAttribute.cs index 61ceaabcb7..7fc45b77be 100644 --- a/Rubberduck.Parsing/Inspections/CannotAnnotateAttribute.cs +++ b/Rubberduck.Parsing/Inspections/CannotAnnotateAttribute.cs @@ -9,4 +9,15 @@ namespace Rubberduck.Parsing.Inspections public class CannotAnnotateAttribute : Attribute { } + + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] + public class QuickFixAttribute : Attribute + { + public QuickFixAttribute(Type quickFixType) + { + QuickFixType = quickFixType; + } + + public Type QuickFixType { get; } + } } \ No newline at end of file From 4883e61447af97a0674893083ae439cd88e9b16f Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Tue, 30 Apr 2019 21:03:11 -0400 Subject: [PATCH 08/47] added xmldoc --- .../Concrete/AssignedByValParameterInspection.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Rubberduck.CodeAnalysis/Inspections/Concrete/AssignedByValParameterInspection.cs b/Rubberduck.CodeAnalysis/Inspections/Concrete/AssignedByValParameterInspection.cs index 8d7048c0aa..7cac521b72 100644 --- a/Rubberduck.CodeAnalysis/Inspections/Concrete/AssignedByValParameterInspection.cs +++ b/Rubberduck.CodeAnalysis/Inspections/Concrete/AssignedByValParameterInspection.cs @@ -9,6 +9,20 @@ namespace Rubberduck.Inspections.Concrete { + /// + /// Warns about parameters passed by value being assigned a new value in the body of a procedure. + /// + /// + /// + /// + /// + /// This inspection means to flag the following examples: + /// + /// + /// The following code should not trip this inspection: + /// + /// + /// public sealed class AssignedByValParameterInspection : InspectionBase { public AssignedByValParameterInspection(RubberduckParserState state) From 0c5836149bb23d0bdf779d6c96f2bf7109bba3cb Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Tue, 30 Apr 2019 21:54:05 -0400 Subject: [PATCH 09/47] Added dropdown indicator arrow --- .../UI/Inspections/InspectionResultsControl.xaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Rubberduck.Core/UI/Inspections/InspectionResultsControl.xaml b/Rubberduck.Core/UI/Inspections/InspectionResultsControl.xaml index f9ffc1e429..f1626663bd 100644 --- a/Rubberduck.Core/UI/Inspections/InspectionResultsControl.xaml +++ b/Rubberduck.Core/UI/Inspections/InspectionResultsControl.xaml @@ -84,11 +84,18 @@ + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -283,17 +287,13 @@ - - - - - - + @@ -356,17 +356,13 @@ - - - - - - + From c27fe1b2b7c05f8cb817a5742ce2e3bc64f2c389 Mon Sep 17 00:00:00 2001 From: Mathieu Guindon Date: Fri, 3 May 2019 00:21:02 -0400 Subject: [PATCH 16/47] cleaned up duplicate resources --- .../UI/UnitTesting/TestExplorerControl.xaml | 188 ------------------ 1 file changed, 188 deletions(-) diff --git a/Rubberduck.Core/UI/UnitTesting/TestExplorerControl.xaml b/Rubberduck.Core/UI/UnitTesting/TestExplorerControl.xaml index 1a2adc66e6..21535950d0 100644 --- a/Rubberduck.Core/UI/UnitTesting/TestExplorerControl.xaml +++ b/Rubberduck.Core/UI/UnitTesting/TestExplorerControl.xaml @@ -50,197 +50,9 @@ - - - - - - - - - - - - - - - - - - -