From 947c2d65c2dfc2cfd9c1c5b672e97d4045b330fc Mon Sep 17 00:00:00 2001 From: Roberto Leinardi Date: Thu, 2 Jan 2025 14:20:25 +0100 Subject: [PATCH] Fix #459: Suppress "Redundant visibility modifier" Warnings in Generated Code --- .../kotlin/me/tatarka/inject/compiler/InjectGenerator.kt | 6 ++++++ .../tatarka/inject/compiler/KmpComponentCreateGenerator.kt | 1 + 2 files changed, 7 insertions(+) diff --git a/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/InjectGenerator.kt b/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/InjectGenerator.kt index 2cb13d37..a546e8b7 100644 --- a/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/InjectGenerator.kt +++ b/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/InjectGenerator.kt @@ -72,6 +72,7 @@ class InjectGenerator( val createFunction = createGenerator.create(astClass, constructor, injectComponent, classOptIn) return FileSpec.builder(astClass.packageName, injectName).apply { + addAnnotation(createSuppressAnnotation("REDUNDANT_VISIBILITY_MODIFIER")) astClass.containingFile?.optInAnnotation()?.let { addAnnotation(it) } createFunction.forEach { addFunction(it) } addType(injectComponent) @@ -425,6 +426,11 @@ fun AstType.toVariableName(): String = fun AstAnnotated.optInAnnotation(): AnnotationSpec? = annotation(OPT_IN.packageName, OPT_IN.simpleName)?.toAnnotationSpec() +fun createSuppressAnnotation(reason: String): AnnotationSpec = + AnnotationSpec.builder(Suppress::class) + .addMember("%S", reason) + .build() + private fun AstType.joinArgumentTypeNames(): String = when { arguments.isEmpty() -> "" else -> arguments.joinToString(separator = "") { diff --git a/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/KmpComponentCreateGenerator.kt b/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/KmpComponentCreateGenerator.kt index 1eba5f91..8a0dbe4b 100644 --- a/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/KmpComponentCreateGenerator.kt +++ b/kotlin-inject-compiler/core/src/main/kotlin/me/tatarka/inject/compiler/KmpComponentCreateGenerator.kt @@ -20,6 +20,7 @@ class KmpComponentCreateGenerator( packageName = componentClass.packageName, fileName = "KmpComponentCreate${componentClass.name}", ).apply { + addAnnotation(createSuppressAnnotation("REDUNDANT_VISIBILITY_MODIFIER")) kmpComponentCreateFunctions.forEach { kmpComponentCreateFunction -> addFunction( FunSpec