Skip to content

Commit d59a956

Browse files
committed
properly handle numbers in class names
1 parent 4d946a2 commit d59a956

3 files changed

Lines changed: 80 additions & 12 deletions

File tree

modulecheck-api/src/main/kotlin/modulecheck/api/context/Declarations.kt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,7 @@ data class Declarations(
5353
set
5454
}
5555

56-
return Declarations(ConcurrentHashMap(map)).also {
57-
println(""" //////////////////////////////////////////
58-
|
59-
|$it
60-
|
61-
|
62-
|
63-
|
64-
|
65-
""".trimMargin())
66-
}
56+
return Declarations(ConcurrentHashMap(map))
6757
}
6858
}
6959
}

modulecheck-plugin/src/test/kotlin/modulecheck/gradle/UnusedDependenciesTest.kt

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,84 @@ class UnusedDependenciesTest : BaseTest() {
496496
build("moduleCheckUnusedDependency").shouldSucceed()
497497
}
498498

499+
@Test
500+
fun `module with a static member declaration used via a wildcard import should not be unused`() {
501+
502+
val appProject = ProjectSpec("app") {
503+
addBuildSpec(
504+
ProjectBuildSpec {
505+
addPlugin("""id("com.android.library")""")
506+
addPlugin("kotlin(\"android\")")
507+
android = true
508+
addProjectDependency("api", jvmSub1)
509+
}
510+
)
511+
addSrcSpec(
512+
ProjectSrcSpec(Path.of("src/main/java")) {
513+
addRawFile(
514+
"MyFile.kt", """
515+
package com.example.app
516+
517+
import com.example.lib1.*
518+
519+
val theView = Lib1View.build()
520+
""".trimIndent()
521+
)
522+
}
523+
)
524+
}
525+
526+
ProjectSpec("project") {
527+
applyEach(projects) { project ->
528+
addSubproject(project)
529+
}
530+
addSubproject(appProject)
531+
addSubproject(
532+
ProjectSpec("lib-1") {
533+
addSrcSpec(
534+
ProjectSrcSpec(Path.of("src/main/java")) {
535+
addFileSpec(
536+
FileSpec.builder("com.example.lib1", "Lib1View")
537+
.addType(
538+
TypeSpec.classBuilder("Lib1View")
539+
.addType(
540+
TypeSpec.companionObjectBuilder()
541+
.addFunction(
542+
FunSpec.builder("build")
543+
.build()
544+
)
545+
.build()
546+
)
547+
.build()
548+
)
549+
.build()
550+
)
551+
}
552+
)
553+
addBuildSpec(
554+
ProjectBuildSpec {
555+
addPlugin("kotlin(\"jvm\")")
556+
addProjectDependency("api", jvmSub1)
557+
}
558+
)
559+
}
560+
)
561+
addSettingsSpec(projectSettings.build())
562+
addBuildSpec(
563+
projectBuild
564+
.addBlock(
565+
"""moduleCheck {
566+
| autoCorrect = false
567+
|}
568+
""".trimMargin()
569+
).build()
570+
)
571+
}
572+
.writeIn(testProjectDir.toPath())
573+
574+
build("moduleCheckUnusedDependency").shouldSucceed()
575+
}
576+
499577
@Test
500578
fun `module with a string resource used in subject module should not be unused`() {
501579
val appFile = FileSpec.builder("com.example.app", "MyApp")

modulecheck-psi/src/main/kotlin/modulecheck/psi/DeclarationVisitor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class DeclarationVisitor : KtTreeVisitorVoid() {
2626
override fun visitNamedDeclaration(declaration: KtNamedDeclaration) {
2727
if (!declaration.isPrivateOrInternal()) {
2828
declaration.fqName?.let {
29-
declarations.add(it.asString().asDeclaractionName())
29+
declarations.add(it.asString().replace(".Companion", "").asDeclaractionName())
3030
}
3131
}
3232

0 commit comments

Comments
 (0)