From d4149dc59d32968abe224c7b4b9d38dc6f6ad3d7 Mon Sep 17 00:00:00 2001 From: Markus Schwarz Date: Sun, 31 Jul 2022 22:44:00 +0200 Subject: [PATCH 1/3] Deprecate MultiRule --- .../io/gitlab/arturbosch/detekt/api/MultiRule.kt | 1 + .../io/gitlab/arturbosch/detekt/core/Analyzer.kt | 4 ++-- .../gitlab/arturbosch/detekt/core/rules/RuleSets.kt | 4 ++-- .../arturbosch/detekt/core/suppressors/Suppressor.kt | 4 ++-- .../gitlab/arturbosch/detekt/core/SuppressionSpec.kt | 5 +++-- .../arturbosch/detekt/core/rules/MultiRuleSpec.kt | 5 +++-- .../detekt/core/suppressors/SuppressorsSpec.kt | 5 +++-- .../arturbosch/detekt/formatting/KtLintMultiRule.kt | 5 +++-- .../detekt/generator/collection/MultiRuleCollector.kt | 2 +- .../io/github/detekt/report/sarif/RuleDescriptors.kt | 11 ++++++++--- .../detekt/rules/documentation/KDocStyle.kt | 5 +++-- .../arturbosch/detekt/rules/empty/EmptyBlocks.kt | 5 +++-- .../arturbosch/detekt/rules/naming/NamingRules.kt | 5 +++-- .../arturbosch/detekt/rules/style/FileParsingRule.kt | 5 +++-- 14 files changed, 40 insertions(+), 26 deletions(-) diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/MultiRule.kt b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/MultiRule.kt index a9034a82b7a..8e9a3a46e0f 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/MultiRule.kt +++ b/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/MultiRule.kt @@ -7,6 +7,7 @@ import org.jetbrains.kotlin.psi.KtFile * Can be used to combine different rules which do similar work like * scanning the source code line by line to increase performance. */ +@Deprecated("multi rules are much more difficult to maintain and support will be removed in the future") abstract class MultiRule : BaseRule() { abstract val rules: List diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Analyzer.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Analyzer.kt index 3d68a3f2f41..84713e4e5e1 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Analyzer.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/Analyzer.kt @@ -6,7 +6,6 @@ import io.gitlab.arturbosch.detekt.api.BaseRule import io.gitlab.arturbosch.detekt.api.Config import io.gitlab.arturbosch.detekt.api.FileProcessListener import io.gitlab.arturbosch.detekt.api.Finding -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSetId import io.gitlab.arturbosch.detekt.api.RuleSetProvider @@ -95,9 +94,10 @@ internal class Analyzer( bindingContext: BindingContext, compilerResources: CompilerResources ): Map> { + @Suppress("DEPRECATION") fun isCorrectable(rule: BaseRule): Boolean = when (rule) { is Rule -> rule.autoCorrect - is MultiRule -> rule.rules.any { it.autoCorrect } + is io.gitlab.arturbosch.detekt.api.MultiRule -> rule.rules.any { it.autoCorrect } else -> error("No other rule type expected.") } diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/rules/RuleSets.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/rules/RuleSets.kt index 01471f93be1..5f15b05d304 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/rules/RuleSets.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/rules/RuleSets.kt @@ -5,7 +5,6 @@ import io.github.detekt.tooling.api.spec.RulesSpec import io.gitlab.arturbosch.detekt.api.BaseRule import io.gitlab.arturbosch.detekt.api.Config import io.gitlab.arturbosch.detekt.api.Finding -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleId import io.gitlab.arturbosch.detekt.api.RuleSet @@ -35,7 +34,8 @@ fun RuleSet.visitFile( fun associateRuleIdsToRuleSetIds(ruleSets: Sequence): Map { fun extractIds(rule: BaseRule) = - if (rule is MultiRule) { + @Suppress("DEPRECATION") + if (rule is io.gitlab.arturbosch.detekt.api.MultiRule) { rule.rules.asSequence().map(Rule::ruleId) } else { sequenceOf(rule.ruleId) diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/Suppressor.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/Suppressor.kt index 08aa49696da..de90162281c 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/Suppressor.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/Suppressor.kt @@ -3,7 +3,6 @@ package io.gitlab.arturbosch.detekt.core.suppressors import io.gitlab.arturbosch.detekt.api.BaseRule import io.gitlab.arturbosch.detekt.api.ConfigAware import io.gitlab.arturbosch.detekt.api.Finding -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import org.jetbrains.kotlin.resolve.BindingContext @@ -22,8 +21,9 @@ private fun buildSuppressors(rule: ConfigAware, bindingContext: BindingContext): } internal fun getSuppressors(rule: BaseRule, bindingContext: BindingContext): List { + @Suppress("DEPRECATION") return when (rule) { - is MultiRule -> rule.rules.flatMap { innerRule -> + is io.gitlab.arturbosch.detekt.api.MultiRule -> rule.rules.flatMap { innerRule -> buildSuppressors(innerRule, bindingContext).map { suppressor -> InnerSuppressor(innerRule, suppressor) } } is ConfigAware -> buildSuppressors(rule, bindingContext) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt index 577d73740df..746d776d63f 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt @@ -9,7 +9,6 @@ import io.gitlab.arturbosch.detekt.api.Debt import io.gitlab.arturbosch.detekt.api.Entity import io.gitlab.arturbosch.detekt.api.Issue import io.gitlab.arturbosch.detekt.api.Location -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSet import io.gitlab.arturbosch.detekt.api.Severity @@ -320,7 +319,9 @@ private fun isSuppressedBy(annotation: String, argument: String): Boolean { return annotatedClass.isSuppressedBy("Test", setOf("alias")) } -private class AMultiRule(config: Config) : MultiRule() { +private class AMultiRule(config: Config) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { override val rules: List = listOf(TestLPL(config)) } diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/rules/MultiRuleSpec.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/rules/MultiRuleSpec.kt index 978cd9245ea..1af6399e837 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/rules/MultiRuleSpec.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/rules/MultiRuleSpec.kt @@ -7,7 +7,6 @@ import io.gitlab.arturbosch.detekt.api.Config import io.gitlab.arturbosch.detekt.api.Debt import io.gitlab.arturbosch.detekt.api.Entity import io.gitlab.arturbosch.detekt.api.Issue -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSet import io.gitlab.arturbosch.detekt.api.RuleSetProvider @@ -70,7 +69,9 @@ private class MultiRuleProvider : RuleSetProvider { override fun instance(config: Config): RuleSet = RuleSet(ruleSetId, listOf(TestMultiRule(config))) } -private class TestMultiRule(config: Config) : MultiRule() { +private class TestMultiRule(config: Config) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { private val one = TestRuleOne(config) private val two = TestRuleTwo(config) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/SuppressorsSpec.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/SuppressorsSpec.kt index 21853db55f2..da2ca4f644d 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/SuppressorsSpec.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/suppressors/SuppressorsSpec.kt @@ -6,7 +6,6 @@ import io.gitlab.arturbosch.detekt.api.Config import io.gitlab.arturbosch.detekt.api.Debt import io.gitlab.arturbosch.detekt.api.Entity import io.gitlab.arturbosch.detekt.api.Issue -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.Severity import io.gitlab.arturbosch.detekt.test.TestConfig @@ -79,7 +78,9 @@ class SuppressorsSpec { } } -private class AMultiRule(config: Config) : MultiRule() { +private class AMultiRule(config: Config) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { override val rules: List = listOf(ARule(config)) } diff --git a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt index 0fa570cc4d3..c9dbcaebd32 100644 --- a/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt +++ b/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/KtLintMultiRule.kt @@ -1,7 +1,6 @@ package io.gitlab.arturbosch.detekt.formatting import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.formatting.wrappers.AnnotationOnSeparateLine import io.gitlab.arturbosch.detekt.formatting.wrappers.AnnotationSpacing @@ -65,7 +64,9 @@ import java.util.LinkedList /** * Runs all KtLint rules. */ -class KtLintMultiRule(config: Config = Config.empty) : MultiRule() { +class KtLintMultiRule(config: Config = Config.empty) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { override val rules: List = listOf( // Wrappers for ktlint-ruleset-standard rules. Enabled by default. 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 6c7c4d9e6d0..ac93bbd1dfe 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 @@ -21,7 +21,7 @@ data class MultiRule( operator fun contains(ruleName: String) = ruleName in this.rules } -private val multiRule = io.gitlab.arturbosch.detekt.api.MultiRule::class.simpleName.orEmpty() +private val multiRule = @Suppress("DEPRECATION") io.gitlab.arturbosch.detekt.api.MultiRule::class.simpleName.orEmpty() class MultiRuleCollector : Collector { override val items = mutableListOf() diff --git a/detekt-report-sarif/src/main/kotlin/io/github/detekt/report/sarif/RuleDescriptors.kt b/detekt-report-sarif/src/main/kotlin/io/github/detekt/report/sarif/RuleDescriptors.kt index 90a5348494a..1243c88b435 100644 --- a/detekt-report-sarif/src/main/kotlin/io/github/detekt/report/sarif/RuleDescriptors.kt +++ b/detekt-report-sarif/src/main/kotlin/io/github/detekt/report/sarif/RuleDescriptors.kt @@ -3,7 +3,6 @@ package io.github.detekt.report.sarif import io.github.detekt.sarif4k.MultiformatMessageString import io.github.detekt.sarif4k.ReportingDescriptor import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSetId import io.gitlab.arturbosch.detekt.api.RuleSetProvider @@ -24,15 +23,21 @@ internal fun toReportingDescriptors(config: Config): List { } val descriptors = mutableListOf() ruleSetIdAndRules.forEach { (ruleSetId, rule) -> + @Suppress("DEPRECATION") when (rule) { - is MultiRule -> descriptors.addAll(rule.toDescriptors(ruleSetId)) + is io.gitlab.arturbosch.detekt.api.MultiRule -> descriptors.addAll( + rule.toDescriptors( + ruleSetId + ) + ) is Rule -> descriptors.add(rule.toDescriptor(ruleSetId)) } } return descriptors } -private fun MultiRule.toDescriptors(ruleSetId: RuleSetId): List = +@Suppress("DEPRECATION") +private fun io.gitlab.arturbosch.detekt.api.MultiRule.toDescriptors(ruleSetId: RuleSetId): List = this.rules.map { it.toDescriptor(ruleSetId) } private fun Rule.toDescriptor(ruleSetId: RuleSetId): ReportingDescriptor { diff --git a/detekt-rules-documentation/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/documentation/KDocStyle.kt b/detekt-rules-documentation/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/documentation/KDocStyle.kt index 84d4b7c3233..81d32f57d09 100644 --- a/detekt-rules-documentation/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/documentation/KDocStyle.kt +++ b/detekt-rules-documentation/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/documentation/KDocStyle.kt @@ -1,10 +1,11 @@ package io.gitlab.arturbosch.detekt.rules.documentation import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import org.jetbrains.kotlin.psi.KtDeclaration -class KDocStyle(config: Config = Config.empty) : MultiRule() { +class KDocStyle(config: Config = Config.empty) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { private val deprecatedBlockTag = DeprecatedBlockTag(config) private val endOfSentenceFormat = EndOfSentenceFormat(config) diff --git a/detekt-rules-empty/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/empty/EmptyBlocks.kt b/detekt-rules-empty/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/empty/EmptyBlocks.kt index 626807bb9f4..76eff32f101 100644 --- a/detekt-rules-empty/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/empty/EmptyBlocks.kt +++ b/detekt-rules-empty/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/empty/EmptyBlocks.kt @@ -1,7 +1,6 @@ package io.gitlab.arturbosch.detekt.rules.empty import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.internal.ActiveByDefault import org.jetbrains.kotlin.psi.KtCatchClause @@ -29,7 +28,9 @@ import org.jetbrains.kotlin.psi.KtWhileExpression */ @Suppress("TooManyFunctions") @ActiveByDefault(since = "1.0.0") -class EmptyBlocks(val config: Config = Config.empty) : MultiRule() { +class EmptyBlocks(val config: Config = Config.empty) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { private val emptyCatchBlock = EmptyCatchBlock(config) private val emptyClassBlock = EmptyClassBlock(config) diff --git a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/NamingRules.kt b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/NamingRules.kt index 8d731d81dba..cc675cb5260 100644 --- a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/NamingRules.kt +++ b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/NamingRules.kt @@ -1,7 +1,6 @@ package io.gitlab.arturbosch.detekt.rules.naming import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import org.jetbrains.kotlin.psi.KtClassOrObject import org.jetbrains.kotlin.psi.KtConstructor @@ -16,7 +15,9 @@ import org.jetbrains.kotlin.psi.KtProperty import org.jetbrains.kotlin.psi.KtVariableDeclaration import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType -class NamingRules(config: Config = Config.empty) : MultiRule() { +class NamingRules(config: Config = Config.empty) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { private val variableNamingRule = VariableNaming(config) private val variableMinNameLengthRule = VariableMinLength(config) diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt index 62b29b8009d..6e44da3b879 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt @@ -1,10 +1,11 @@ package io.gitlab.arturbosch.detekt.rules.style import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import org.jetbrains.kotlin.psi.KtFile -class FileParsingRule(val config: Config = Config.empty) : MultiRule() { +class FileParsingRule(val config: Config = Config.empty) : + @Suppress("DEPRECATION") + io.gitlab.arturbosch.detekt.api.MultiRule() { private val maxLineLength = MaxLineLength(config) private val trailingWhitespace = TrailingWhitespace(config) From 25c25026a2c45045eeb4a4e2f582fe958f785396 Mon Sep 17 00:00:00 2001 From: Markus Schwarz Date: Tue, 2 Aug 2022 07:33:49 +0200 Subject: [PATCH 2/3] add more suppressions --- .../io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt | 1 + .../detekt/generator/collection/MultiRuleCollector.kt | 3 ++- .../io/gitlab/arturbosch/detekt/rules/RuleProviderSpec.kt | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt index 746d776d63f..56ff05e4fb7 100644 --- a/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt +++ b/detekt-core/src/test/kotlin/io/gitlab/arturbosch/detekt/core/SuppressionSpec.kt @@ -282,6 +282,7 @@ class SuppressionSpec { @Nested inner class `MultiRule` { + @Suppress("DEPRECATION") private lateinit var subject: io.gitlab.arturbosch.detekt.api.MultiRule @BeforeEach 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 ac93bbd1dfe..8eecd0ee88f 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 @@ -21,7 +21,8 @@ data class MultiRule( operator fun contains(ruleName: String) = ruleName in this.rules } -private val multiRule = @Suppress("DEPRECATION") io.gitlab.arturbosch.detekt.api.MultiRule::class.simpleName.orEmpty() +@Suppress("DEPRECATION") +private val multiRule = io.gitlab.arturbosch.detekt.api.MultiRule::class.simpleName.orEmpty() class MultiRuleCollector : Collector { override val items = mutableListOf() diff --git a/detekt-rules/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/RuleProviderSpec.kt b/detekt-rules/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/RuleProviderSpec.kt index 51ee19e6bb5..519919f77d9 100644 --- a/detekt-rules/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/RuleProviderSpec.kt +++ b/detekt-rules/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/RuleProviderSpec.kt @@ -2,7 +2,6 @@ package io.gitlab.arturbosch.detekt.rules import io.gitlab.arturbosch.detekt.api.BaseRule import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.MultiRule import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSetProvider import io.gitlab.arturbosch.detekt.api.internal.DefaultRuleSetProvider @@ -63,7 +62,9 @@ private fun getRulesPackageNameForProvider(providerType: Class { val ruleSet = provider.instance(Config.empty) - val rules = ruleSet.rules.flatMap { (it as? MultiRule)?.rules ?: listOf(it) } + + @Suppress("DEPRECATION") + val rules = ruleSet.rules.flatMap { (it as? io.gitlab.arturbosch.detekt.api.MultiRule)?.rules ?: listOf(it) } assertThat(rules).isNotEmpty return rules } From d07f4d513a0f67083741db1efed781bb5c42c4d0 Mon Sep 17 00:00:00 2001 From: Markus Schwarz Date: Sun, 7 Aug 2022 12:58:44 +0200 Subject: [PATCH 3/3] fix merge error --- .../detekt/rules/style/FileParsingRule.kt | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt deleted file mode 100644 index 6e44da3b879..00000000000 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/FileParsingRule.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.gitlab.arturbosch.detekt.rules.style - -import io.gitlab.arturbosch.detekt.api.Config -import org.jetbrains.kotlin.psi.KtFile - -class FileParsingRule(val config: Config = Config.empty) : - @Suppress("DEPRECATION") - io.gitlab.arturbosch.detekt.api.MultiRule() { - - private val maxLineLength = MaxLineLength(config) - private val trailingWhitespace = TrailingWhitespace(config) - private val noTabs = NoTabs(config) - override val rules = listOf(maxLineLength, trailingWhitespace, noTabs) - - override fun visitKtFile(file: KtFile) { - val lines = file.text.splitToSequence("\n") - val fileContents = KtFileContent(file, lines) - - maxLineLength.runIfActive { visit(fileContents) } - trailingWhitespace.runIfActive { visit(fileContents) } - noTabs.runIfActive { findTabs(file) } - } -} - -data class KtFileContent(val file: KtFile, val content: Sequence)