diff --git a/plugins/kotlin/code-insight/inspections-k2/tests/test/org/jetbrains/kotlin/idea/k2/inspections/tests/K2UnusedSymbolHighlightingTestGenerated.java b/plugins/kotlin/code-insight/inspections-k2/tests/test/org/jetbrains/kotlin/idea/k2/inspections/tests/K2UnusedSymbolHighlightingTestGenerated.java index 28305fe34903..aa8d5dda15b8 100644 --- a/plugins/kotlin/code-insight/inspections-k2/tests/test/org/jetbrains/kotlin/idea/k2/inspections/tests/K2UnusedSymbolHighlightingTestGenerated.java +++ b/plugins/kotlin/code-insight/inspections-k2/tests/test/org/jetbrains/kotlin/idea/k2/inspections/tests/K2UnusedSymbolHighlightingTestGenerated.java @@ -202,6 +202,16 @@ public abstract class K2UnusedSymbolHighlightingTestGenerated extends AbstractK2 runTest("../../../idea/tests/testData/inspectionsLocal/unusedSymbol/annotationWithUseSiteTarget.kt"); } + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + runTest("../../../idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction.kt"); + } + + @TestMetadata("anonymousFunction1.kt") + public void testAnonymousFunction1() throws Exception { + runTest("../../../idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction1.kt"); + } + @TestMetadata("arrayAccessOperator.kt") public void testArrayAccessOperator() throws Exception { runTest("../../../idea/tests/testData/inspectionsLocal/unusedSymbol/arrayAccessOperator.kt"); diff --git a/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/K2UnusedSymbolUtil.kt b/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/K2UnusedSymbolUtil.kt index 818c9ec9fba1..6302ff33bad6 100644 --- a/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/K2UnusedSymbolUtil.kt +++ b/plugins/kotlin/highlighting/highlighting-k2/src/org/jetbrains/kotlin/idea/highlighting/K2UnusedSymbolUtil.kt @@ -103,6 +103,9 @@ object K2UnusedSymbolUtil { if (isExpectedOrActual(containingClass)) return false } } else if (ownerFunction is KtFunction) { + if (ownerFunction.name == null) { + return false + } if (ownerFunction.hasModifier(KtTokens.OPERATOR_KEYWORD)) { // operator parameters are hardcoded to be used since they can't be removed at will, because operator convention would break return false diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 9473b87c1969..5a511db5d880 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -16610,6 +16610,16 @@ public abstract class LocalInspectionTestGenerated extends AbstractLocalInspecti runTest("testData/inspectionsLocal/unusedSymbol/annotationWithUseSiteTarget.kt"); } + @TestMetadata("anonymousFunction.kt") + public void testAnonymousFunction() throws Exception { + runTest("testData/inspectionsLocal/unusedSymbol/anonymousFunction.kt"); + } + + @TestMetadata("anonymousFunction1.kt") + public void testAnonymousFunction1() throws Exception { + runTest("testData/inspectionsLocal/unusedSymbol/anonymousFunction1.kt"); + } + @TestMetadata("arrayAccessOperator.kt") public void testArrayAccessOperator() throws Exception { runTest("testData/inspectionsLocal/unusedSymbol/arrayAccessOperator.kt"); diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction.kt new file mode 100644 index 000000000000..9f477b04b8ea --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction.kt @@ -0,0 +1,13 @@ +// PROBLEM: none +// WITH_STDLIB +fun foo(p: (String) -> Unit) { + p("") +} + +fun use() { + foo( + fun(it: String) { + print("foo") + }, + ) +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction1.kt b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction1.kt new file mode 100644 index 000000000000..9f5118d2869b --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/inspectionsLocal/unusedSymbol/anonymousFunction1.kt @@ -0,0 +1,7 @@ +// PROBLEM: none +// WITH_STDLIB +fun use() { + val f = fun(it: String) { + print("foo") + } +} \ No newline at end of file