diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt index 67f0568dbcc..59da9a932bf 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt @@ -94,14 +94,18 @@ public data class IntroduceParameterDescriptor( } else JetValVar.None - val occurrenceRanges = occurrencesToReplace.map { it.getTextRange() } - parametersToRemove = parametersUsages.entrySet() - .filter { - it.value.all { paramRef -> - occurrenceRanges.any { occurrenceRange -> occurrenceRange.contains(paramRef.getElement().getTextRange()) } - } + parametersToRemove = + if (withDefaultValue) Collections.emptyList() + else { + val occurrenceRanges = occurrencesToReplace.map { it.getTextRange() } + parametersUsages.entrySet() + .filter { + it.value.all { paramRef -> + occurrenceRanges.any { occurrenceRange -> occurrenceRange.contains(paramRef.getElement().getTextRange()) } + } + } + .map { it.key } } - .map { it.key } } } diff --git a/idea/testData/refactoring/introduceParameter/functionMultipleUnusedParameters.kt.after b/idea/testData/refactoring/introduceParameter/functionMultipleUnusedParameters.kt.after index cb3367d9046..083a6778582 100644 --- a/idea/testData/refactoring/introduceParameter/functionMultipleUnusedParameters.kt.after +++ b/idea/testData/refactoring/introduceParameter/functionMultipleUnusedParameters.kt.after @@ -1,7 +1,7 @@ -fun foo(s: String, i: Int = a + b): Int { +fun foo(a: Int, s: String, b: Int, i: Int = a + b): Int { return i * 2 } fun test() { - foo("2") + foo(1, "2", 3) } \ No newline at end of file diff --git a/idea/testData/refactoring/introduceParameter/functionMultipleUsages.kt.after b/idea/testData/refactoring/introduceParameter/functionMultipleUsages.kt.after index 58fa970ac95..a24f9afe526 100644 --- a/idea/testData/refactoring/introduceParameter/functionMultipleUsages.kt.after +++ b/idea/testData/refactoring/introduceParameter/functionMultipleUsages.kt.after @@ -1,8 +1,8 @@ -fun foo(s: String, i: Int = a + 1): Int { +fun foo(a: Int, s: String, i: Int = a + 1): Int { val t = i * 2 return i - t } fun test() { - foo("2") + foo(1, "2") } \ No newline at end of file diff --git a/idea/testData/refactoring/introduceParameter/functionUnusedParameter.kt.after b/idea/testData/refactoring/introduceParameter/functionUnusedParameter.kt.after index def86ddd096..0c548ff9f00 100644 --- a/idea/testData/refactoring/introduceParameter/functionUnusedParameter.kt.after +++ b/idea/testData/refactoring/introduceParameter/functionUnusedParameter.kt.after @@ -1,7 +1,7 @@ -fun foo(s: String, i: Int = a + 1): Int { +fun foo(a: Int, s: String, i: Int = a + 1): Int { return i * 2 } fun test() { - foo("2") + foo(1, "2") } \ No newline at end of file