From 0ecebd4f61d0e14d3f04ac6b085e69ea82965e0f Mon Sep 17 00:00:00 2001 From: Toshiaki Kameyama Date: Wed, 8 Jun 2022 04:14:51 +0900 Subject: [PATCH] UnusedPrivateMember: highlight declaration name (#4928) --- .../detekt/rules/style/UnusedPrivateMember.kt | 6 +-- .../rules/style/UnusedPrivateMemberSpec.kt | 46 ++++++++++++++++++- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMember.kt b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMember.kt index 592499c2e76..9180de718ad 100644 --- a/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMember.kt +++ b/detekt-rules-style/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMember.kt @@ -153,7 +153,7 @@ private class UnusedFunctionVisitor( else -> emptyList() } unusedFunctions.map { - CodeSmell(issue, Entity.from(it), "Private function `$functionName` is unused.") + CodeSmell(issue, Entity.atName(it), "Private function `$functionName` is unused.") } } } @@ -212,7 +212,7 @@ private class UnusedParameterVisitor(allowedNames: Regex) : UnusedMemberVisitor( override fun getUnusedReports(issue: Issue): List { return unusedParameters.map { - CodeSmell(issue, Entity.from(it), "Function parameter `${it.nameAsSafeName.identifier}` is unused.") + CodeSmell(issue, Entity.atName(it), "Function parameter `${it.nameAsSafeName.identifier}` is unused.") } } @@ -284,7 +284,7 @@ private class UnusedPropertyVisitor(allowedNames: Regex) : UnusedMemberVisitor(a .map { CodeSmell( issue, - Entity.from(it), + Entity.atName(it), "Private property `${it.nameAsSafeName.identifier}` is unused." ) } diff --git a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMemberSpec.kt b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMemberSpec.kt index c538acf537b..e8b7078e96a 100644 --- a/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMemberSpec.kt +++ b/detekt-rules-style/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/style/UnusedPrivateMemberSpec.kt @@ -1321,7 +1321,7 @@ class UnusedPrivateMemberSpec(val env: KotlinCoreEnvironment) { """ val findings = subject.compileAndLintWithContext(env, code) assertThat(findings).hasSize(1).hasSourceLocations( - SourceLocation(3, 5) + SourceLocation(3, 30) ) } } @@ -1593,4 +1593,48 @@ class UnusedPrivateMemberSpec(val env: KotlinCoreEnvironment) { assertThat(subject.lintWithContext(env, code)).hasSize(0) } } + + @Nested + inner class `highlights declaration name` { + @Test + fun function() { + val code = """ + class Test { + /** + * kdoc + */ + private fun foo() = 1 + } + """ + assertThat(subject.lint(code)).hasSize(1).hasSourceLocation(5, 17) + } + + @Test + fun property() { + val code = """ + class Test { + /** + * kdoc + */ + private val foo = 1 + } + """ + assertThat(subject.lint(code)).hasSize(1).hasSourceLocation(5, 17) + } + + @Test + fun parameter() { + val code = """ + class Test { + fun test( + /** + * kdoc + */ + x: Int + ) = 1 + } + """ + assertThat(subject.lint(code)).hasSize(1).hasSourceLocation(6, 9) + } + } }