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 858b4b9bd85..e78bad397b8 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 @@ -377,6 +377,10 @@ open class KotlinIntroduceParameterHandler( showErrorHint(project, editor, "Introduce Parameter is not available inside of annotation entries", INTRODUCE_PARAMETER) return } + if (elementAtCaret.getNonStrictParentOfType() != null) { + showErrorHint(project, editor, "Introduce Parameter is not available for default value", INTRODUCE_PARAMETER) + return + } selectNewParameterContext(editor, file) { elements, targetParent -> val expression = ((elements.singleOrNull() as? KtBlockExpression)?.statements ?: elements).singleOrNull() diff --git a/idea/testData/refactoring/introduceParameter/inDefaultValue.kt b/idea/testData/refactoring/introduceParameter/inDefaultValue.kt new file mode 100644 index 00000000000..ee3c1d23713 --- /dev/null +++ b/idea/testData/refactoring/introduceParameter/inDefaultValue.kt @@ -0,0 +1,3 @@ +fun foo(s: String = "abc") { + +} \ No newline at end of file diff --git a/idea/testData/refactoring/introduceParameter/inDefaultValue.kt.conflicts b/idea/testData/refactoring/introduceParameter/inDefaultValue.kt.conflicts new file mode 100644 index 00000000000..1dd610fa692 --- /dev/null +++ b/idea/testData/refactoring/introduceParameter/inDefaultValue.kt.conflicts @@ -0,0 +1 @@ +Introduce Parameter is not available for default value diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java index d6224bb2a43..28f67f06c4b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java @@ -3512,6 +3512,12 @@ public class ExtractionTestGenerated extends AbstractExtractionTest { doIntroduceSimpleParameterTest(fileName); } + @TestMetadata("inDefaultValue.kt") + public void testInDefaultValue() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceParameter/inDefaultValue.kt"); + doIntroduceSimpleParameterTest(fileName); + } + @TestMetadata("lambdaArgument.kt") public void testLambdaArgument() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceParameter/lambdaArgument.kt");