diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt index 2f8bc92d0ab..c8be0ab9f4e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/KotlinParameterInfo.kt @@ -191,9 +191,7 @@ class KotlinParameterInfo @JvmOverloads constructor ( } private fun getOriginalParameter(inheritedCallable: KotlinCallableDefinitionUsage<*>): KtParameter? { - val currentFunction = inheritedCallable.declaration as? KtFunction ?: return null - val originalParameterIndex = if (currentFunction.receiverTypeReference == null) originalIndex else originalIndex - 1 - return currentFunction.valueParameters.getOrNull(originalParameterIndex) + return (inheritedCallable.declaration as? KtFunction)?.valueParameters?.getOrNull(originalIndex) } private fun buildNewParameter(inheritedCallable: KotlinCallableDefinitionUsage<*>, parameterIndex: Int): KtParameter { diff --git a/idea/testData/intentions/convertReceiverToParameter/varargs.kt b/idea/testData/intentions/convertReceiverToParameter/varargs.kt new file mode 100644 index 00000000000..6cc228ddf68 --- /dev/null +++ b/idea/testData/intentions/convertReceiverToParameter/varargs.kt @@ -0,0 +1 @@ +fun Int.f1(vararg i: Int){} \ No newline at end of file diff --git a/idea/testData/intentions/convertReceiverToParameter/varargs.kt.after b/idea/testData/intentions/convertReceiverToParameter/varargs.kt.after new file mode 100644 index 00000000000..cb41537fcb8 --- /dev/null +++ b/idea/testData/intentions/convertReceiverToParameter/varargs.kt.after @@ -0,0 +1 @@ +fun f1(i1: Int, vararg i: Int){} \ No newline at end of file diff --git a/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt b/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt new file mode 100644 index 00000000000..df7af092482 --- /dev/null +++ b/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt @@ -0,0 +1,4 @@ +// "Remove parameter 'a'" "true" + +fun String.foo(a:Int = 0, b: Int) { +} \ No newline at end of file diff --git a/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt.after b/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt.after new file mode 100644 index 00000000000..9f00e5d56ad --- /dev/null +++ b/idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt.after @@ -0,0 +1,4 @@ +// "Remove parameter 'a'" "true" + +fun String.foo(b: Int) { +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java index 906cb749e0d..28449e32978 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/IntentionTestGenerated.java @@ -5725,6 +5725,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertReceiverToParameter/validOverload.kt"); doTest(fileName); } + + @TestMetadata("varargs.kt") + public void testVarargs() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertReceiverToParameter/varargs.kt"); + doTest(fileName); + } } @TestMetadata("idea/testData/intentions/convertReferenceToLambda") diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index bceced8f5be..a256f89035b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -1172,6 +1172,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("removeParameterFromExtension.kt") + public void testRemoveParameterFromExtension() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/changeSignature/removeParameterFromExtension.kt"); + doTest(fileName); + } + @TestMetadata("removeParameterFromFakeOverride.kt") public void testRemoveParameterFromFakeOverride() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/changeSignature/removeParameterFromFakeOverride.kt");