From eb41f6abd9effa69b1bd10f5607d55c2bdd6e079 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 7 Oct 2025 14:31:32 +0200 Subject: [PATCH] [kotlin] missing kdoc inspection: skip functional parameters, they can't have explicit kdocs on them ^KTIJ-35899 fixed GitOrigin-RevId: f9a88b5c281675d30b56850e8991578de5ae04bc --- .../codeinsight/fixes/HighLevelQuickFixTestGenerated.java | 5 +++++ .../inspections/kdoc/KDocMissingDocumentationInspection.kt | 7 +++++-- .../kotlin/idea/quickfix/K1QuickFixTestGenerated.java | 5 +++++ .../kdocMissingDocumentation/functionalParameter.kt | 3 +++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 plugins/kotlin/idea/tests/testData/quickfix/kdocMissingDocumentation/functionalParameter.kt diff --git a/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java b/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java index bd229c105e2c..7b36b90d11e3 100644 --- a/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java +++ b/plugins/kotlin/code-insight/fixes-k2/tests/test/org/jetbrains/kotlin/idea/k2/codeinsight/fixes/HighLevelQuickFixTestGenerated.java @@ -9195,6 +9195,11 @@ public abstract class HighLevelQuickFixTestGenerated extends AbstractHighLevelQu runTest("../../../idea/tests/testData/quickfix/kdocMissingDocumentation/funWithKDoc.kt"); } + @TestMetadata("functionalParameter.kt") + public void testFunctionalParameter() throws Exception { + runTest("../../../idea/tests/testData/quickfix/kdocMissingDocumentation/functionalParameter.kt"); + } + @TestMetadata("internalFun.kt") public void testInternalFun() throws Exception { runTest("../../../idea/tests/testData/quickfix/kdocMissingDocumentation/internalFun.kt"); diff --git a/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/kdoc/KDocMissingDocumentationInspection.kt b/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/kdoc/KDocMissingDocumentationInspection.kt index 58ad6e1cf627..6776390f3e79 100644 --- a/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/kdoc/KDocMissingDocumentationInspection.kt +++ b/plugins/kotlin/code-insight/inspections-k2/src/org/jetbrains/kotlin/idea/k2/codeinsight/inspections/kdoc/KDocMissingDocumentationInspection.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.idea.kdoc.findKDocByPsi import org.jetbrains.kotlin.kdoc.psi.impl.KDocSection import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtNamedDeclaration +import org.jetbrains.kotlin.psi.KtParameter import org.jetbrains.kotlin.psi.KtVisitor import org.jetbrains.kotlin.psi.namedDeclarationVisitor import org.jetbrains.kotlin.psi.psiUtil.endOffset @@ -36,8 +37,10 @@ internal class KDocMissingDocumentationInspection : KotlinApplicableInspectionBa visitTargetElement(it, holder, isOnTheFly) } - override fun isApplicableByPsi(element: KtNamedDeclaration): Boolean = - !TestUtils.isInTestSourceContent(element) && element.findKDocByPsi() == null + override fun isApplicableByPsi(element: KtNamedDeclaration): Boolean { + if (element is KtParameter && element.isFunctionTypeParameter) return false + return !TestUtils.isInTestSourceContent(element) && element.findKDocByPsi() == null + } override fun getApplicableRanges(element: KtNamedDeclaration): List = ApplicabilityRanges.declarationName(element) diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/quickfix/K1QuickFixTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/quickfix/K1QuickFixTestGenerated.java index 09f280373bcb..fc82b320b90f 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/quickfix/K1QuickFixTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/quickfix/K1QuickFixTestGenerated.java @@ -11002,6 +11002,11 @@ public abstract class K1QuickFixTestGenerated extends AbstractK1QuickFixTest { runTest("testData/quickfix/kdocMissingDocumentation/funWithKDoc.kt"); } + @TestMetadata("functionalParameter.kt") + public void testFunctionalParameter() throws Exception { + runTest("testData/quickfix/kdocMissingDocumentation/functionalParameter.kt"); + } + @TestMetadata("internalFun.kt") public void testInternalFun() throws Exception { runTest("testData/quickfix/kdocMissingDocumentation/internalFun.kt"); diff --git a/plugins/kotlin/idea/tests/testData/quickfix/kdocMissingDocumentation/functionalParameter.kt b/plugins/kotlin/idea/tests/testData/quickfix/kdocMissingDocumentation/functionalParameter.kt new file mode 100644 index 000000000000..c71b46c4f030 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/quickfix/kdocMissingDocumentation/functionalParameter.kt @@ -0,0 +1,3 @@ +// "Add documentation" "false" + +val p: (s: String) -> Boolean = { true } \ No newline at end of file