From caa95a92a41e3261e7d8ac1d9eb57716e4edff00 Mon Sep 17 00:00:00 2001 From: Gouri Panda Date: Sat, 16 Jul 2022 00:04:54 +0530 Subject: [PATCH] ReturnCount.excludedFunctions should be a List --- .../io/gitlab/arturbosch/detekt/api/SplitPattern.kt | 6 ++++-- .../src/main/resources/default-detekt-config.yml | 3 ++- .../arturbosch/detekt/rules/style/ReturnCount.kt | 13 ++++++++++--- .../detekt/rules/style/ReturnCountSpec.kt | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/SplitPattern.kt b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/SplitPattern.kt index 1450f2a11646..ccfd4010c3cd 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/SplitPattern.kt +++ b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/SplitPattern.kt @@ -28,7 +28,8 @@ open class SplitPattern( /** * Does any part contain given [value]? */ - fun contains(value: String?): Boolean = excludes.any { value?.contains(it, ignoreCase = true) == true } + fun contains(value: String?): Boolean = + excludes.any { value?.contains(it, ignoreCase = true) == true } /** * Is there any element which matches the given [value]? @@ -43,7 +44,8 @@ open class SplitPattern( /** * Finds all parts which match the given [value]. */ - fun matches(value: String): List = excludes.filter { value.contains(it, ignoreCase = true) } + fun matches(value: String): List = + excludes.filter { value.contains(it, ignoreCase = true) } /** * Tests if any part starts with the given [value] diff --git a/detekt-core/src/main/resources/default-detekt-config.yml b/detekt-core/src/main/resources/default-detekt-config.yml index 462058ca590c..b83d5201eb6b 100644 --- a/detekt-core/src/main/resources/default-detekt-config.yml +++ b/detekt-core/src/main/resources/default-detekt-config.yml @@ -626,7 +626,8 @@ style: ReturnCount: active: true max: 2 - excludedFunctions: 'equals' + excludedFunctions: + - 'equals' excludeLabeled: false excludeReturnFromLambda: true excludeGuardClauses: false diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCount.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCount.kt index 1d6d69e53eb2..3158efd3227d 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCount.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCount.kt @@ -59,8 +59,14 @@ class ReturnCount(config: Config = Config.empty) : Rule(config) { @Configuration("define the maximum number of return statements allowed per function") private val max: Int by config(2) - @Configuration("define a free-form comma separated list of function names to be ignored by this check") - private val excludedFunctions: SplitPattern by config("equals") { SplitPattern(it) } + @Configuration("define a list of function names to be ignored by this check") + private val excludedFunctions: SplitPattern by config(listOf("equals")) { + SplitPattern( + it.joinToString( + "," + ) + ) + } @Configuration("if labeled return statements should be ignored") private val excludeLabeled: Boolean by config(false) @@ -90,7 +96,8 @@ class ReturnCount(config: Config = Config.empty) : Rule(config) { } } - private fun shouldBeIgnored(function: KtNamedFunction) = excludedFunctions.contains(function.name) + private fun shouldBeIgnored(function: KtNamedFunction) = + excludedFunctions.contains(function.name) private fun countReturnStatements(function: KtNamedFunction): Int { fun KtReturnExpression.isExcluded(): Boolean = when { diff --git a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCountSpec.kt b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCountSpec.kt index 9abd3b37a9b5..1ce28adf704a 100644 --- a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCountSpec.kt +++ b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/ReturnCountSpec.kt @@ -347,7 +347,7 @@ class ReturnCountSpec { TestConfig( mapOf( MAX to "2", - EXCLUDED_FUNCTIONS to "test1,test2" + EXCLUDED_FUNCTIONS to listOf("test1", "test2") ) ) ).compileAndLint(code)