Browse Source

ParameterCanBeDemotedIssue no longer tries to demote arrays to ILists.

pull/32/merge
Mike Krüger 13 years ago
parent
commit
4e104efc65
  1. 4
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/ParameterCanBeDemotedIssue/ParameterCanBeDemotedIssue.cs
  2. 15
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterCanBeDemotedIssue/ParameterCanBeDemotedTests.cs

4
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/ParameterCanBeDemotedIssue/ParameterCanBeDemotedIssue.cs

@ -148,6 +148,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -148,6 +148,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
orderby GetInheritanceDepth(type) ascending
select type).ToList();
if (validTypes.Any()) {
// don't demote an array to IList
if (variable.Type.Kind == TypeKind.Array && validTypes.Any (t => t.Namespace == "System.Collections" && t.Name == "IList")) {
return;
}
AddIssue(parameter, ctx.TranslateString("Parameter can be demoted to base class"), GetActions(parameter, validTypes));
MembersWithIssues++;
}

15
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterCanBeDemotedIssue/ParameterCanBeDemotedTests.cs

@ -921,6 +921,21 @@ class Test : TestBase @@ -921,6 +921,21 @@ class Test : TestBase
}
}");
}
/// <summary>
/// Bug 9617 - Incorrect "parameter can be demoted to base class" warning for arrays
/// </summary>
[Test]
public void TestBug9617()
{
Test<ParameterCanBeDemotedIssue>(@"class Test
{
object Foo (object[] arr)
{
return arr [0];
}
}", 0);
}
}
}

Loading…
Cancel
Save