diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 9029c3cce..2c6153c55 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -157,3 +157,5 @@ style: allowedNames: '(_|ignored|expected)' UseCheckOrError: active: true + UseEmptyCounterpart: + active: true diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/CodeSmell.kt b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/CodeSmell.kt index e933207f6..b06c03783 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/CodeSmell.kt +++ b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/CodeSmell.kt @@ -14,8 +14,8 @@ open class CodeSmell( final override val issue: Issue, override val entity: Entity, override val message: String, - override val metrics: List = listOf(), - override val references: List = listOf() + override val metrics: List = emptyList(), + override val references: List = emptyList() ) : Finding { internal var internalSeverity: SeverityLevel = SeverityLevel.WARNING @@ -50,8 +50,8 @@ open class CorrectableCodeSmell( issue: Issue, entity: Entity, message: String, - metrics: List = listOf(), - references: List = listOf(), + metrics: List = emptyList(), + references: List = emptyList(), val autoCorrectEnabled: Boolean ) : CodeSmell( issue, diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/AnnotationExcluderSpec.kt b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/AnnotationExcluderSpec.kt index 2a30840ee..7e44c09a5 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/AnnotationExcluderSpec.kt +++ b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/AnnotationExcluderSpec.kt @@ -38,7 +38,7 @@ class AnnotationExcluderSpec : Spek({ } it("should not exclude when no annotations should be excluded") { - val excluder = AnnotationExcluder(file, listOf()) + val excluder = AnnotationExcluder(file, emptyList()) assertThat(excluder.shouldExclude(listOf(jvmFieldAnnotation))).isFalse() } diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/ConfigPropertySpec.kt b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/ConfigPropertySpec.kt index 588817dce..a4fc606af 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/ConfigPropertySpec.kt +++ b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/ConfigPropertySpec.kt @@ -258,7 +258,7 @@ class ConfigPropertySpec : Spek({ object : TestConfigAware() { val defaultValue: List = emptyList() val prop1: List by config(defaultValue) { it.map(String::toInt) } - val prop2: List by config(listOf()) { it.map(String::toInt) } + val prop2: List by config(emptyList()) { it.map(String::toInt) } } } it("can be defined as variable") { diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt index 1c5433941..a47da80df 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt +++ b/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/CliArgsSpec.kt @@ -18,7 +18,7 @@ internal class CliArgsSpec : Spek({ describe("Parsing the input path") { it("the current working directory is used if parameter is not set") { - val cli = parseArguments(arrayOf()) + val cli = parseArguments(emptyArray()) assertThat(cli.inputPaths).hasSize(1) assertThat(cli.inputPaths.first()).isEqualTo(Paths.get(System.getProperty("user.dir"))) } diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfig.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfig.kt index a37349232..06537c797 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfig.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfig.kt @@ -20,7 +20,7 @@ class YamlConfig internal constructor( ) : Config, ValidatableConfiguration { override fun subConfig(key: String): Config { - val subProperties = properties.getOrElse(key) { mapOf() } + val subProperties = properties.getOrElse(key) { emptyMap() } return YamlConfig( subProperties as Map, if (parentPath == null) key else "$parentPath $CONFIG_SEPARATOR $key" diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/KT.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/KT.kt index ae98c7be3..5da9fafec 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/KT.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/KT.kt @@ -23,7 +23,7 @@ class TestProvider(override val ruleSetId: String = "Test") : RuleSetProvider { class TestProvider2(override val ruleSetId: String = "Test2") : RuleSetProvider { override fun instance(config: Config): RuleSet { - return RuleSet("Test", listOf()) + return RuleSet("Test", emptyList()) } } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfigSpec.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfigSpec.kt index f1e165ddd..29960659f 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfigSpec.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/config/YamlConfigSpec.kt @@ -23,10 +23,20 @@ class YamlConfigSpec : Spek({ it("should create a sub config") { val subConfig = config.subConfig("style") - assertThat(subConfig.valueOrDefault("WildcardImport", mapOf())).isNotEmpty - assertThat(subConfig.valueOrDefault("WildcardImport", mapOf())["active"].toString()).isEqualTo("true") - assertThat(subConfig.valueOrDefault("WildcardImport", mapOf())["active"] as Boolean).isTrue() - assertThat(subConfig.valueOrDefault("NotFound", mapOf())).isEmpty() + assertThat(subConfig.valueOrDefault("WildcardImport", emptyMap())).isNotEmpty + assertThat( + subConfig.valueOrDefault( + "WildcardImport", + emptyMap() + )["active"].toString() + ).isEqualTo("true") + assertThat( + subConfig.valueOrDefault( + "WildcardImport", + emptyMap() + )["active"] as Boolean + ).isTrue() + assertThat(subConfig.valueOrDefault("NotFound", emptyMap())).isEmpty() assertThat(subConfig.valueOrDefault("NotFound", "")).isEmpty() } diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/MultiRuleCollector.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/MultiRuleCollector.kt index 68b2a252c..0eee0c831 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/MultiRuleCollector.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/MultiRuleCollector.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.psi.psiUtil.referenceExpression data class MultiRule( val name: String, - val rules: List = listOf() + val rules: List = emptyList() ) { operator fun contains(ruleName: String) = ruleName in this.rules diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/Rule.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/Rule.kt index d0a22855f..0043eb04d 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/Rule.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/Rule.kt @@ -10,7 +10,7 @@ data class Rule( var debt: String, var aliases: String?, val parent: String, - val configuration: List = listOf(), + val configuration: List = emptyList(), val autoCorrect: Boolean = false, var inMultiRule: String? = null, val requiresTypeResolution: Boolean = false diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/RuleSetProviderCollector.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/RuleSetProviderCollector.kt index a75e43123..d41608fc9 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/RuleSetProviderCollector.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/collection/RuleSetProviderCollector.kt @@ -18,8 +18,8 @@ data class RuleSetProvider( val name: String, val description: String, val defaultActivationStatus: DefaultActivationStatus, - val rules: List = listOf(), - val configuration: List = listOf() + val rules: List = emptyList(), + val configuration: List = emptyList() ) class RuleSetProviderCollector : Collector { diff --git a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/rulesetpage/Exclusion.kt b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/rulesetpage/Exclusion.kt index 1ff43fb01..ce7c4ec62 100644 --- a/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/rulesetpage/Exclusion.kt +++ b/detekt-generator/src/main/kotlin/io/gitlab/arturbosch/detekt/generator/printer/rulesetpage/Exclusion.kt @@ -14,7 +14,7 @@ val exclusions = arrayOf(TestExclusions, KotlinScriptExclusions, LibraryExclusio abstract class Exclusions { abstract val pattern: String - open val ruleSets: Set = setOf() + open val ruleSets: Set = emptySet() abstract val rules: Set fun isExcluded(rule: Rule) = rule.name in rules || rule.inMultiRule in rules diff --git a/detekt-gradle-plugin/src/test/kotlin/io/gitlab/arturbosch/detekt/invoke/DefaultCliInvokerSpec.kt b/detekt-gradle-plugin/src/test/kotlin/io/gitlab/arturbosch/detekt/invoke/DefaultCliInvokerSpec.kt index f614dd264..041904f23 100644 --- a/detekt-gradle-plugin/src/test/kotlin/io/gitlab/arturbosch/detekt/invoke/DefaultCliInvokerSpec.kt +++ b/detekt-gradle-plugin/src/test/kotlin/io/gitlab/arturbosch/detekt/invoke/DefaultCliInvokerSpec.kt @@ -14,7 +14,7 @@ internal class DefaultCliInvokerSpec : Spek({ assertThatCode { DefaultCliInvoker(stubbedCache) - .invokeCli(listOf(), TestFileCollection(), "detekt", ignoreFailures = false) + .invokeCli(emptyList(), TestFileCollection(), "detekt", ignoreFailures = false) }.isInstanceOf(GradleException::class.java) .hasMessageContaining("testing reflection wrapper...") } diff --git a/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/CyclomaticComplexitySpec.kt b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/CyclomaticComplexitySpec.kt index 8b9df2095..5c70b4f79 100644 --- a/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/CyclomaticComplexitySpec.kt +++ b/detekt-metrics/src/test/kotlin/io/github/detekt/metrics/CyclomaticComplexitySpec.kt @@ -90,7 +90,7 @@ class CyclomaticComplexitySpec : Spek({ it("does not count when forEach is not specified") { assertThat( CyclomaticComplexity.calculate(code) { - nestingFunctions = setOf() + nestingFunctions = emptySet() } ).isEqualTo(defaultFunctionComplexity) } diff --git a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LabeledExpression.kt b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LabeledExpression.kt index dc4d69e61..85e16753b 100644 --- a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LabeledExpression.kt +++ b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LabeledExpression.kt @@ -69,7 +69,7 @@ class LabeledExpression(config: Config = Config.empty) : Rule(config) { ) @Configuration("allows to provide a list of label names which should be ignored by this rule") - private val ignoredLabels: List by config(listOf()) { list -> + private val ignoredLabels: List by config(emptyList()) { list -> list.map { it.removePrefix("*").removeSuffix("*") } } diff --git a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LongParameterList.kt b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LongParameterList.kt index 5080c380c..edb37aec1 100644 --- a/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LongParameterList.kt +++ b/detekt-rules-complexity/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/complexity/LongParameterList.kt @@ -68,7 +68,7 @@ class LongParameterList(config: Config = Config.empty) : Rule(config) { "the most common cases are for dependency injection where constructors are annotated with `@Inject` " + "or parameters are annotated with `@Value` and should not be counted for the rule to trigger" ) - private val ignoreAnnotated: List by config(listOf()) { list -> + private val ignoreAnnotated: List by config(emptyList()) { list -> list.map { it.removePrefix("*").removeSuffix("*") } } diff --git a/detekt-rules-errorprone/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/bugs/UselessPostfixExpression.kt b/detekt-rules-errorprone/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/bugs/UselessPostfixExpression.kt index bf0ca3a4f..8e8098a48 100644 --- a/detekt-rules-errorprone/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/bugs/UselessPostfixExpression.kt +++ b/detekt-rules-errorprone/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/bugs/UselessPostfixExpression.kt @@ -62,7 +62,7 @@ class UselessPostfixExpression(config: Config = Config.empty) : Rule(config) { Debt.TWENTY_MINS ) - var properties = setOf() + var properties = emptySet() override fun visitClass(klass: KtClass) { properties = klass.getProperties() diff --git a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/ForbiddenClassName.kt b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/ForbiddenClassName.kt index dbe842ea3..adf31237e 100644 --- a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/ForbiddenClassName.kt +++ b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/ForbiddenClassName.kt @@ -26,7 +26,7 @@ class ForbiddenClassName(config: Config = Config.empty) : Rule(config) { ) @Configuration("forbidden class names") - private val forbiddenName: List by config(listOf()) { names -> + private val forbiddenName: List by config(emptyList()) { names -> names.map { it.removePrefix("*").removeSuffix("*") } } diff --git a/detekt-sample-extensions/src/test/kotlin/io/gitlab/arturbosch/detekt/sample/extensions/processors/QualifiedNameProcessorSpec.kt b/detekt-sample-extensions/src/test/kotlin/io/gitlab/arturbosch/detekt/sample/extensions/processors/QualifiedNameProcessorSpec.kt index 8b4caf4b6..462479282 100644 --- a/detekt-sample-extensions/src/test/kotlin/io/gitlab/arturbosch/detekt/sample/extensions/processors/QualifiedNameProcessorSpec.kt +++ b/detekt-sample-extensions/src/test/kotlin/io/gitlab/arturbosch/detekt/sample/extensions/processors/QualifiedNameProcessorSpec.kt @@ -34,9 +34,9 @@ class QualifiedNameProcessorSpec : Spek({ private val result = object : Detektion { - override val findings: Map> = mapOf() - override val notifications: Collection = listOf() - override val metrics: Collection = listOf() + override val findings: Map> = emptyMap() + override val notifications: Collection = emptyList() + override val metrics: Collection = emptyList() private var userData = KeyFMap.EMPTY_MAP override fun getData(key: Key): V? = userData.get(key) diff --git a/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KotlinCoreEnvironmentWrapper.kt b/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KotlinCoreEnvironmentWrapper.kt index c555d265d..2958957bf 100644 --- a/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KotlinCoreEnvironmentWrapper.kt +++ b/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KotlinCoreEnvironmentWrapper.kt @@ -28,6 +28,7 @@ class KotlinCoreEnvironmentWrapper( * * @param additionalRootPaths the optional JVM classpath roots list. */ -fun createEnvironment(additionalRootPaths: List = listOf()): KotlinCoreEnvironmentWrapper = KtTestCompiler.createEnvironment(additionalRootPaths) +fun createEnvironment(additionalRootPaths: List = emptyList()): KotlinCoreEnvironmentWrapper = + KtTestCompiler.createEnvironment(additionalRootPaths) fun createPsiFactory(): KtPsiFactory = KtPsiFactory(KtTestCompiler.project(), false) diff --git a/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KtTestCompiler.kt b/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KtTestCompiler.kt index 12f90f564..85294e2c9 100644 --- a/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KtTestCompiler.kt +++ b/detekt-test-utils/src/main/kotlin/io/github/detekt/test/utils/KtTestCompiler.kt @@ -37,7 +37,7 @@ internal object KtTestCompiler : KtCompiler() { * Not sure why but this function only works from this context. * Somehow the Kotlin language was not yet initialized. */ - fun createEnvironment(additionalRootPaths: List = listOf()): KotlinCoreEnvironmentWrapper { + fun createEnvironment(additionalRootPaths: List = emptyList()): KotlinCoreEnvironmentWrapper { val configuration = CompilerConfiguration() configuration.put(CommonConfigurationKeys.MODULE_NAME, "test_module") configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE) diff --git a/detekt-tooling/src/test/kotlin/io/github/detekt/tooling/api/PluginsSpec.kt b/detekt-tooling/src/test/kotlin/io/github/detekt/tooling/api/PluginsSpec.kt index d47737ea9..33c48d153 100644 --- a/detekt-tooling/src/test/kotlin/io/github/detekt/tooling/api/PluginsSpec.kt +++ b/detekt-tooling/src/test/kotlin/io/github/detekt/tooling/api/PluginsSpec.kt @@ -14,7 +14,7 @@ internal class PluginsSpec : Spek({ it("throws when both sources are supplied via dsl") { assertThatCode { ExtensionsSpecBuilder().apply { - fromPaths { listOf() } + fromPaths { emptyList() } fromClassloader { javaClass.classLoader } }.build() }.isInstanceOf(IllegalArgumentException::class.java) @@ -22,13 +22,13 @@ internal class PluginsSpec : Spek({ assertThatCode { ExtensionsSpecBuilder().apply { fromClassloader { javaClass.classLoader } - fromPaths { listOf() } + fromPaths { emptyList() } }.build() }.isInstanceOf(IllegalArgumentException::class.java) } it("throws when both sources are supplied via internal helper class") { - assertThatCode { PluginsHolder(listOf(), javaClass.classLoader) } + assertThatCode { PluginsHolder(emptyList(), javaClass.classLoader) } .isInstanceOf(IllegalArgumentException::class.java) }