From 627bbb744f688b8af9872bdb6bc6ad9440845898 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Mon, 26 Mar 2012 18:17:48 +0200 Subject: [PATCH] Fixed parameter name guessing. --- .../CreateMethodDeclarationAction.cs | 4 ++-- .../CreateMethodDeclarationTests.cs | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs index fd8d68f2ee..4864f27283 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateMethodDeclarationAction.cs @@ -234,7 +234,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring if (node is DirectionExpression) { node = ((DirectionExpression)node).Expression; } - if (node is IdentifierExpression) { name = ((IdentifierExpression)node).Identifier; } else if (node is MemberReferenceExpression) { @@ -243,8 +242,9 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring var pe = (PrimitiveExpression)node; if (pe.Value is string) { name = CreateBaseNameFromString(pe.Value.ToString()); + } else { + name = char.ToLower(type.Name [0]).ToString(); } - name = char.ToLower(type.Name [0]).ToString(); } else { name = type.Kind == TypeKind.Unknown ? "par" : type.Name; } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs index 44fc037b3e..04a4f95d45 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeActions/CreateMethodDeclarationTests.cs @@ -546,6 +546,29 @@ namespace Test { } "); } + + [Test()] + public void TestStringParameterNameGuessing () + { + TestCreateMethod (@"class TestClass +{ + static void TestMethod () + { + $NonExistantMethod (""Hello World!""); + } +}", @"class TestClass +{ + static void NonExistantMethod (string helloWorld) + { + throw new System.NotImplementedException (); + } + static void TestMethod () + { + NonExistantMethod (""Hello World!""); + } +}"); + } + } }