From e3cac6022b77d8e907db399155ac5fc1d629bfba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sat, 10 Sep 2022 14:16:58 +0200 Subject: [PATCH] Fix TopLevelPropertyNaming --- .../rules/naming/TopLevelPropertyNaming.kt | 2 ++ .../naming/TopLevelPropertyNamingSpec.kt | 33 ++++++++++++------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNaming.kt b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNaming.kt index f7316344865..d0ab166f7fa 100644 --- a/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNaming.kt +++ b/detekt-rules-naming/src/main/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNaming.kt @@ -38,6 +38,8 @@ class TopLevelPropertyNaming(config: Config = Config.empty) : Rule(config) { private val privatePropertyPattern: Regex by config("_?[A-Za-z][_A-Za-z0-9]*") { it.toRegex() } override fun visitProperty(property: KtProperty) { + super.visitProperty(property) + if (!property.isTopLevel) return if (property.isConstant()) { handleConstant(property) } else { diff --git a/detekt-rules-naming/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNamingSpec.kt b/detekt-rules-naming/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNamingSpec.kt index 3d238104ba6..79e1b4246ca 100644 --- a/detekt-rules-naming/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNamingSpec.kt +++ b/detekt-rules-naming/src/test/kotlin/io/gitlab/arturbosch/detekt/rules/naming/TopLevelPropertyNamingSpec.kt @@ -12,18 +12,12 @@ class TopLevelPropertyNamingSpec { val subject = TopLevelPropertyNaming() @Test - fun `should use custom name top level propeties`() { - assertThat( - TopLevelPropertyNaming(TestConfig(mapOf(TopLevelPropertyNaming.CONSTANT_PATTERN to "^lowerCaseConst$"))).compileAndLint( - """ - class Foo{ - companion object { - const val lowerCaseConst = "" - } - } - """.trimIndent() - ) - ).isEmpty() + fun `should use custom name top level properties`() { + val code = """ + const val lowerCaseConst = "" + """.trimIndent() + val subject = TopLevelPropertyNaming(TestConfig(TopLevelPropertyNaming.CONSTANT_PATTERN to "^lowerCaseConst$")) + assertThat(subject.lint(code)).isEmpty() } @Nested @@ -87,4 +81,19 @@ class TopLevelPropertyNamingSpec { io.gitlab.arturbosch.detekt.test.assertThat(subject.lint(code)).hasSize(1) } } + + @Test + fun `should not care about no top level properties`() { + val code = """ + class Foo{ + val __baz = "" + companion object { + const val __bar = "" + val __foo = "" + } + } + """.trimIndent() + + assertThat(subject.compileAndLint(code)).isEmpty() + } }