Browse Source

Fixed create method action bug.

pull/32/merge
Mike Krüger 13 years ago
parent
commit
2fc7cb0167
  1. 2
      ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs
  2. 4
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs
  3. 23
      ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs

2
ICSharpCode.NRefactory.CSharp/Formatter/AstFormattingVisitor.cs

@ -928,7 +928,7 @@ namespace ICSharpCode.NRefactory.CSharp @@ -928,7 +928,7 @@ namespace ICSharpCode.NRefactory.CSharp
}
}
} else {
foreach (var arg in parameters) {
foreach (var arg in parameters.Skip (1)) {
if (arg.PrevSibling != null) {
if (methodCallArgumentWrapping == Wrapping.DoNotWrap) {
ForceSpacesBeforeRemoveNewLines(arg, spaceAfterMethodCallParameterComma && arg.PrevSibling.Role == Roles.Comma);

4
ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs

@ -240,7 +240,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -240,7 +240,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
nameCounter [name]++;
name += nameCounter [name].ToString();
}
var type = resolveResult.Type.Kind == TypeKind.Unknown ? new PrimitiveType("object") : context.CreateShortType(resolveResult.Type);
var type = resolveResult.Type.Kind == TypeKind.Unknown || resolveResult.Type.Kind == TypeKind.Null ? new PrimitiveType("object") : context.CreateShortType(resolveResult.Type);
yield return new ParameterDeclaration(type, name) { ParameterModifier = direction};
}
@ -278,6 +278,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -278,6 +278,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
public static string CreateBaseName(AstNode node, IType type)
{
string name = null;
if (node is NullReferenceExpression)
return "o";
if (node is DirectionExpression)
node = ((DirectionExpression)node).Expression;
if (node is IdentifierExpression) {

23
ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs

@ -714,6 +714,29 @@ class Foo @@ -714,6 +714,29 @@ class Foo
");
}
[Test]
public void TestPassNullArgument ()
{
Test<CreateMethodDeclarationAction> (@"class TestClass
{
void TestMethod ()
{
$NonExistantMethod (null);
}
}", @"class TestClass
{
void NonExistantMethod (object o)
{
throw new System.NotImplementedException ();
}
void TestMethod ()
{
NonExistantMethod (null);
}
}");
}
}
}

Loading…
Cancel
Save