Browse Source

ExtractAnonymousMethodAction: Fixed "fails to insert generated method when anonymous method is not in a method" issue

newNRvisualizers
Mansheng Yang 13 years ago
parent
commit
549d6bb08d
  1. 2
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ExtractAnonymousMethodAction.cs
  2. 18
      ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ExtractAnonymousMethodTests.cs

2
ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/ExtractAnonymousMethodAction.cs

@ -80,7 +80,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -80,7 +80,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
{
var identifier = new IdentifierExpression ("Method");
script.Replace (node, identifier);
script.InsertBefore (node.GetParent<MethodDeclaration> (), method);
script.InsertBefore (node.GetParent<EntityDeclaration> (), method);
script.Link (method.NameToken, identifier);
});
}

18
ICSharpCode.NRefactory.Tests/CSharp/CodeActions/ExtractAnonymousMethodTests.cs

@ -135,6 +135,24 @@ class TestClass @@ -135,6 +135,24 @@ class TestClass
int j = 1;
System.Func<int, int> a = $delegate (int i) { return i + j; };
}
}");
}
[Test]
public void TestLambdaInField ()
{
Test<ExtractAnonymousMethodAction> (@"
class TestClass
{
System.Action<int> a = i $=> { i++; };
}", @"
class TestClass
{
void Method (int i)
{
i++;
}
System.Action<int> a = Method;
}");
}
}

Loading…
Cancel
Save