diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameToUnderscoreFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameToUnderscoreFix.kt index 9f79b35f226..c4003d3f069 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameToUnderscoreFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/RenameToUnderscoreFix.kt @@ -34,7 +34,15 @@ class RenameToUnderscoreFix(element: KtCallableDeclaration) : KotlinQuickFixActi companion object Factory : KotlinSingleIntentionActionFactory() { override fun createAction(diagnostic: Diagnostic): IntentionAction? { val declaration: KtCallableDeclaration? = when (diagnostic.factory) { - Errors.UNUSED_PARAMETER -> diagnostic.psiElement as? KtParameter + Errors.UNUSED_PARAMETER -> { + val parameter = diagnostic.psiElement as? KtParameter + val owner = parameter?.parent?.parent + + if (owner is KtFunctionLiteral || (owner is KtNamedFunction && owner.name == null)) + parameter + else + null + } Errors.UNUSED_VARIABLE, Errors.UNUSED_DESTRUCTURED_PARAMETER_ENTRY -> diagnostic.psiElement as? KtDestructuringDeclarationEntry else -> null diff --git a/idea/testData/quickfix/decreaseVisibility/exposedParameterType.kt b/idea/testData/quickfix/decreaseVisibility/exposedParameterType.kt index 074e7ef3835..57333374ac1 100644 --- a/idea/testData/quickfix/decreaseVisibility/exposedParameterType.kt +++ b/idea/testData/quickfix/decreaseVisibility/exposedParameterType.kt @@ -3,7 +3,6 @@ // ACTION: Make 'Nested' internal // ACTION: Make 'Nested' public // ACTION: Remove parameter 'arg' -// ACTION: Rename to _ // ACTION: Convert to expression body // ERROR: 'internal' function exposes its 'private' parameter type argument Nested // ERROR: Cannot access 'Nested': it is private in 'Outer' diff --git a/idea/testData/quickfix/renameToUnderscore/noActionForCommonFunction.kt b/idea/testData/quickfix/renameToUnderscore/noActionForCommonFunction.kt new file mode 100644 index 00000000000..f48a8e640b4 --- /dev/null +++ b/idea/testData/quickfix/renameToUnderscore/noActionForCommonFunction.kt @@ -0,0 +1,7 @@ +// "Rename to _" "false" +// ACTION: Convert parameter to receiver +// ACTION: Remove parameter 'x' + +fun foo(x: Int) { + +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index f88a87fec20..566d03f5406 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -7496,6 +7496,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("noActionForCommonFunction.kt") + public void testNoActionForCommonFunction() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/renameToUnderscore/noActionForCommonFunction.kt"); + doTest(fileName); + } + @TestMetadata("noActionForCommonVal.kt") public void testNoActionForCommonVal() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/renameToUnderscore/noActionForCommonVal.kt");