From e64d17f4a66be9f849436385fd4bc513f3b053f4 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 18 Sep 2014 18:42:41 +0200 Subject: [PATCH] Fix IndexOutOfRangeException in AddOptionalParameterToInvocationAction --- .../CodeActions/AddOptionalParameterToInvocationAction.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddOptionalParameterToInvocationAction.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddOptionalParameterToInvocationAction.cs index 49157a040e..5c1ef53474 100644 --- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddOptionalParameterToInvocationAction.cs +++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp.Refactoring/CodeActions/AddOptionalParameterToInvocationAction.cs @@ -54,8 +54,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring bool[] parameterIsSpecified = new bool[method.Parameters.Count]; var argumentToParameterMap = resolveResult.GetArgumentToParameterMap(); if (argumentToParameterMap != null) { - foreach (int paramIndex in argumentToParameterMap) - parameterIsSpecified[paramIndex] = true; + foreach (int paramIndex in argumentToParameterMap) { + if (paramIndex >= 0) + parameterIsSpecified[paramIndex] = true; + } } else { for (int i = 0; i < Math.Min(resolveResult.Arguments.Count, parameterIsSpecified.Length); i++) { parameterIsSpecified[i] = true;