Skip to content

Commit cbd999d

Browse files
t-kameyamacortinico
authored andcommitted
UseDataClass: do not report on expect classes (#7857)
Fixes #7832
1 parent 86bfafc commit cbd999d

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClass.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import io.gitlab.arturbosch.detekt.api.Rule
1010
import io.gitlab.arturbosch.detekt.api.Severity
1111
import io.gitlab.arturbosch.detekt.api.config
1212
import io.gitlab.arturbosch.detekt.api.internal.Configuration
13+
import io.gitlab.arturbosch.detekt.rules.isExpect
1314
import io.gitlab.arturbosch.detekt.rules.isOpen
1415
import org.jetbrains.kotlin.psi.KtClass
1516
import org.jetbrains.kotlin.psi.KtFile
@@ -132,7 +133,8 @@ class UseDataClass(config: Config = Config.empty) : Rule(config) {
132133
klass.isSealed() ||
133134
klass.isInline() ||
134135
klass.isValue() ||
135-
klass.isInner()
136+
klass.isInner() ||
137+
klass.isExpect()
136138

137139
private fun hasOnlyPrivateConstructors(klass: KtClass): Boolean {
138140
val primaryConstructor = klass.primaryConstructor

detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClassSpec.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import io.gitlab.arturbosch.detekt.test.assertThat
77
import io.gitlab.arturbosch.detekt.test.compileAndLint
88
import io.gitlab.arturbosch.detekt.test.compileAndLintWithContext
99
import io.gitlab.arturbosch.detekt.test.lint
10+
import io.gitlab.arturbosch.detekt.test.lintWithContext
1011
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
1112
import org.junit.jupiter.api.Nested
1213
import org.junit.jupiter.api.Test
@@ -429,4 +430,14 @@ class UseDataClassSpec(val env: KotlinCoreEnvironment) {
429430
""".trimIndent()
430431
assertThat(subject.compileAndLint(code)).isEmpty()
431432
}
433+
434+
@Test
435+
fun `does not report expected classes`() {
436+
val code = """
437+
expect class Foo() {
438+
val bar: String
439+
}
440+
""".trimIndent()
441+
assertThat(subject.lintWithContext(env, code)).isEmpty()
442+
}
432443
}

0 commit comments

Comments
 (0)