From 64164abb2d1cc7a5db9f42d8aeab3f79cd2d32dc Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Fri, 22 Aug 2025 12:30:02 +0200 Subject: [PATCH] Try following KSP incremental best practices on `anvilcodegen` (#5205) The KotlinPoet docs suggest using the added flow for declaring dependencies. Make the dependencies of the generated files isolating instead of aggregating. --- .../anvilcodegen/ContributesNodeProcessor.kt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/anvilcodegen/src/main/kotlin/io/element/android/anvilcodegen/ContributesNodeProcessor.kt b/anvilcodegen/src/main/kotlin/io/element/android/anvilcodegen/ContributesNodeProcessor.kt index 2511e0008d..7b41c03158 100644 --- a/anvilcodegen/src/main/kotlin/io/element/android/anvilcodegen/ContributesNodeProcessor.kt +++ b/anvilcodegen/src/main/kotlin/io/element/android/anvilcodegen/ContributesNodeProcessor.kt @@ -28,6 +28,7 @@ import com.squareup.kotlinpoet.KModifier import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy import com.squareup.kotlinpoet.STAR import com.squareup.kotlinpoet.TypeSpec +import com.squareup.kotlinpoet.ksp.addOriginatingKSFile import com.squareup.kotlinpoet.ksp.toTypeName import com.squareup.kotlinpoet.ksp.writeTo import dagger.Binds @@ -78,6 +79,7 @@ class ContributesNodeProcessor( ) .addType( TypeSpec.classBuilder(moduleClassName) + .addOriginatingKSFile(ksClass.containingFile!!) .addModifiers(KModifier.ABSTRACT) .addAnnotation(Module::class) .addAnnotation(AnnotationSpec.builder(ContributesTo::class).addMember("%T::class", scope.toTypeName()).build()) @@ -102,10 +104,7 @@ class ContributesNodeProcessor( content.writeTo( codeGenerator = codeGenerator, - dependencies = Dependencies( - aggregating = true, - ksClass.containingFile!! - ), + dependencies = Dependencies(aggregating = false), ) } @@ -139,6 +138,7 @@ class ContributesNodeProcessor( val content = FileSpec.builder(generatedPackage, assistedFactoryClassName) .addType( TypeSpec.interfaceBuilder(assistedFactoryClassName) + .addOriginatingKSFile(ksClass.containingFile!!) .addSuperinterface(ClassName.bestGuess(assistedNodeFactoryFqName.asString()).parameterizedBy(nodeClassName)) .addAnnotation(AssistedFactory::class) .addFunction( @@ -155,10 +155,7 @@ class ContributesNodeProcessor( content.writeTo( codeGenerator = codeGenerator, - dependencies = Dependencies( - aggregating = true, - ksClass.containingFile!! - ), + dependencies = Dependencies(aggregating = false), ) }