From 6d4a8ef4ce94a1d04fb8eee2e0527a2b6bac0c75 Mon Sep 17 00:00:00 2001 From: Alexander Tsay <48321920+aktsay6@users.noreply.github.com> Date: Mon, 30 Nov 2020 17:38:46 +0300 Subject: [PATCH] Bugfix. KdocMethod should not raise warning on override fun (#594) * bugfix/overriden-kdoc-not-mandatory(#551) ### What's done: * Fixed bugs --- .../cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt | 3 ++- .../diktat/ruleset/chapter2/KdocMethodsTest.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt index 32749a224d..a22c3f71e8 100644 --- a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt +++ b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocMethods.kt @@ -51,6 +51,7 @@ import com.pinterest.ktlint.core.ast.ElementType.WHEN_CONDITION_WITH_EXPRESSION import org.cqfn.diktat.ruleset.utils.findChildAfter import org.cqfn.diktat.ruleset.utils.findChildBefore import org.cqfn.diktat.ruleset.utils.getAllChildrenWithType +import org.cqfn.diktat.ruleset.utils.isOverridden import org.jetbrains.kotlin.com.intellij.lang.ASTNode import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.LeafPsiElement import org.jetbrains.kotlin.com.intellij.psi.impl.source.tree.PsiWhiteSpaceImpl @@ -83,7 +84,7 @@ class KdocMethods(private val configRules: List) : Rule("kdoc-metho isFixMode = autoCorrect emitWarn = emit - if (node.elementType == FUN && node.getFirstChildWithType(MODIFIER_LIST).isAccessibleOutside()) { + if (node.elementType == FUN && node.getFirstChildWithType(MODIFIER_LIST).isAccessibleOutside() && !node.isOverridden()) { val config = configRules.getCommonConfiguration().value val fileName = node.getRootNode().getFileName() val isTestMethod = node.hasTestAnnotation() || isLocatedInTest(fileName.splitPathToDirs(), config.testAnchors) diff --git a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsTest.kt b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsTest.kt index 5d73e6a727..603bf10b9a 100644 --- a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsTest.kt +++ b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocMethodsTest.kt @@ -339,4 +339,19 @@ class KdocMethodsTest : LintTestBase(::KdocMethods) { LintError(2, 3, ruleId, "${KDOC_TRIVIAL_KDOC_ON_FUNCTION.warnText()} Returns X", false) ) } + + + @Test + @Tag(WarningNames.MISSING_KDOC_ON_FUNCTION) + fun `should not trigger on override funcs`() { + lintMethod( + """ + |class Some : A { + | override fun foo() {} + | + | override fun bar(t: T): U { return U() } + |} + """.trimMargin() + ) + } }