From 48eec2760c7c50c85f9fd5e9c0437d51a51ad4a5 Mon Sep 17 00:00:00 2001 From: Alexander Tsay <48321920+aktsay6@users.noreply.github.com> Date: Wed, 11 Nov 2020 12:42:31 +0300 Subject: [PATCH] Bugfix. Do not check KDoc on method main (#509) * bugfix/kdoc-on-main(#89) ### What's done: * Fixed bug --- .../org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt | 5 ++++- .../kotlin/org/cqfn/diktat/ruleset/chapter2/KdocWarnTest.kt | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt index ccccc9821f..53a5615673 100644 --- a/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt +++ b/diktat-rules/src/main/kotlin/org/cqfn/diktat/ruleset/rules/kdoc/KdocComments.kt @@ -278,10 +278,13 @@ class KdocComments(private val configRules: List) : Rule("kdoc-comm val modifier = node.getFirstChildWithType(MODIFIER_LIST) val name = node.getIdentifierName() - if (modifier.isAccessibleOutside() && kdoc == null) { + if (modifier.isAccessibleOutside() && kdoc == null && !isTopLevelFunctionStandard(node)) { warning.warn(configRules, emitWarn, isFixMode, name!!.text, node.startOffset, node) } } + + private fun isTopLevelFunctionStandard(node: ASTNode) : Boolean = node.elementType == FUN && node.isStandardMethod() + companion object { private val statementsToDocument = TokenSet.create(CLASS, FUN, PROPERTY) } diff --git a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocWarnTest.kt b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocWarnTest.kt index 2c6cb9cea3..a8d18e0799 100644 --- a/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocWarnTest.kt +++ b/diktat-rules/src/test/kotlin/org/cqfn/diktat/ruleset/chapter2/KdocWarnTest.kt @@ -65,6 +65,8 @@ class KdocWarnTest : LintTestBase(::KdocComments) { internal fun someGoodNameNew(): String { return " "; } + + fun main() {} """.trimIndent() lintMethod(code, LintError(1, 1, ruleId, "${MISSING_KDOC_TOP_LEVEL.warnText()} someGoodName"), @@ -116,6 +118,8 @@ class KdocWarnTest : LintTestBase(::KdocComments) { private class InternalClass { } + + public fun main() {} } """.trimIndent() lintMethod(code,