From bb0f6cdeef1bd5e8c10991eb62a7d9f23881936d Mon Sep 17 00:00:00 2001 From: Artur Bosch Date: Sun, 25 Sep 2022 21:21:09 +0200 Subject: [PATCH] Report UseDataClass findings on class name (#5352) Closes #5338 --- .../gitlab/arturbosch/detekt/rules/style/UseDataClass.kt | 2 +- .../arturbosch/detekt/rules/style/UseDataClassSpec.kt | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClass.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClass.kt index 0a61812d6f2..defda0c037c 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClass.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClass.kt @@ -102,7 +102,7 @@ class UseDataClass(config: Config = Config.empty) : Rule(config) { report( CodeSmell( issue, - Entity.from(klass), + Entity.from(klass.nameIdentifier ?: klass), "The class ${klass.nameAsSafeName} defines no " + "functionality and only holds data. Consider converting it to a data class." ) diff --git a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClassSpec.kt b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClassSpec.kt index 4547d276cd9..59b01105e29 100644 --- a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClassSpec.kt +++ b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UseDataClassSpec.kt @@ -153,11 +153,16 @@ class UseDataClassSpec(val env: KotlinCoreEnvironment) { inner class `does report data class candidates` { @Test - fun `does report a data class candidate`() { + fun `does report a data class candidate on the class name`() { val code = """ class DataClassCandidate1(val i: Int) """.trimIndent() - assertThat(subject.compileAndLint(code)).hasSize(1) + + val findings = subject.compileAndLint(code) + + assertThat(findings).hasSize(1) + assertThat(findings).hasStartSourceLocation(1, 7) + assertThat(findings).hasEndSourceLocation(1, 26) } @Test