From a57be6dcab096cba45dd26c539aa64d5241ade2d Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 23 Mar 2015 11:56:02 +0300 Subject: [PATCH] Change Signature: Do not report conflict when parameter name clashes with suggested name of the receiver --- .../changeSignature/JetChangeSignatureUsageProcessor.java | 4 ++-- .../changeSignature/NoConflictWithReceiverNameAfter.kt | 3 +++ .../changeSignature/NoConflictWithReceiverNameBefore.kt | 3 +++ .../refactoring/changeSignature/JetChangeSignatureTest.java | 6 ++++++ 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameAfter.kt create mode 100644 idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameBefore.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java index 2c07a7c524b..311403983a2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureUsageProcessor.java @@ -359,8 +359,8 @@ public class JetChangeSignatureUsageProcessor implements ChangeSignatureUsagePro } } - for (ParameterInfo parameter : info.getNewParameters()) { - JetValVar valOrVar = ((JetParameterInfo) parameter).getValOrVar(); + for (JetParameterInfo parameter : changeInfo.getNonReceiverParameters()) { + JetValVar valOrVar = parameter.getValOrVar(); String parameterName = parameter.getName(); if (!parameterNames.add(parameterName)) { diff --git a/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameAfter.kt b/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameAfter.kt new file mode 100644 index 00000000000..d883fb99336 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameAfter.kt @@ -0,0 +1,3 @@ +fun Int.foo(i: Int) { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameBefore.kt b/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameBefore.kt new file mode 100644 index 00000000000..eede8ac9f0f --- /dev/null +++ b/idea/testData/refactoring/changeSignature/NoConflictWithReceiverNameBefore.kt @@ -0,0 +1,3 @@ +fun Int.foo() { + +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java index add06b32db7..0859b897722 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java @@ -794,6 +794,12 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { ); } + public void testNoConflictWithReceiverName() throws Exception { + JetChangeInfo changeInfo = getChangeInfo(); + changeInfo.addParameter(new JetParameterInfo(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, "0", null, null)); + doTest(changeInfo); + } + @NotNull @Override protected String getTestDataPath() {