From 82ab94fa1f1354be66bcb683834dbc35a59f2986 Mon Sep 17 00:00:00 2001 From: Simon Lindgren Date: Wed, 1 Aug 2012 21:05:51 +0200 Subject: [PATCH] [CodeIssues] OptionalParameterCouldBeSkippedIssue: Check for unmappable arguments. --- .../CodeIssues/OptionalParameterCouldBeSkippedIssue.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/OptionalParameterCouldBeSkippedIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/OptionalParameterCouldBeSkippedIssue.cs index d1339cbae3..55f18db704 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/OptionalParameterCouldBeSkippedIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/OptionalParameterCouldBeSkippedIssue.cs @@ -105,7 +105,11 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring var resolvedParameters = invocationResolveResult.Member.Parameters; for (int i = arguments.Length - 1; i >= 0; i--) { - var parameter = resolvedParameters[argumentToParameterMap[i]]; + var parameterIndex = argumentToParameterMap[i]; + if (parameterIndex == -1) + // This particular parameter is an error, but keep trying the other ones + continue; + var parameter = resolvedParameters[parameterIndex]; if (parameter.IsParams) // before params all optional arguments are needed, otherwise some of the // param arguments will be shifted out of the params into the fixed parameters