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.
This commit is contained in:
parent
2f2e886e9f
commit
8986b25c09
1 changed files with 5 additions and 8 deletions
|
|
@ -28,6 +28,7 @@ import com.squareup.kotlinpoet.KModifier
|
||||||
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
|
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
|
||||||
import com.squareup.kotlinpoet.STAR
|
import com.squareup.kotlinpoet.STAR
|
||||||
import com.squareup.kotlinpoet.TypeSpec
|
import com.squareup.kotlinpoet.TypeSpec
|
||||||
|
import com.squareup.kotlinpoet.ksp.addOriginatingKSFile
|
||||||
import com.squareup.kotlinpoet.ksp.toTypeName
|
import com.squareup.kotlinpoet.ksp.toTypeName
|
||||||
import com.squareup.kotlinpoet.ksp.writeTo
|
import com.squareup.kotlinpoet.ksp.writeTo
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
|
|
@ -78,6 +79,7 @@ class ContributesNodeProcessor(
|
||||||
)
|
)
|
||||||
.addType(
|
.addType(
|
||||||
TypeSpec.classBuilder(moduleClassName)
|
TypeSpec.classBuilder(moduleClassName)
|
||||||
|
.addOriginatingKSFile(ksClass.containingFile!!)
|
||||||
.addModifiers(KModifier.ABSTRACT)
|
.addModifiers(KModifier.ABSTRACT)
|
||||||
.addAnnotation(Module::class)
|
.addAnnotation(Module::class)
|
||||||
.addAnnotation(AnnotationSpec.builder(ContributesTo::class).addMember("%T::class", scope.toTypeName()).build())
|
.addAnnotation(AnnotationSpec.builder(ContributesTo::class).addMember("%T::class", scope.toTypeName()).build())
|
||||||
|
|
@ -102,10 +104,7 @@ class ContributesNodeProcessor(
|
||||||
|
|
||||||
content.writeTo(
|
content.writeTo(
|
||||||
codeGenerator = codeGenerator,
|
codeGenerator = codeGenerator,
|
||||||
dependencies = Dependencies(
|
dependencies = Dependencies(aggregating = false),
|
||||||
aggregating = true,
|
|
||||||
ksClass.containingFile!!
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,6 +138,7 @@ class ContributesNodeProcessor(
|
||||||
val content = FileSpec.builder(generatedPackage, assistedFactoryClassName)
|
val content = FileSpec.builder(generatedPackage, assistedFactoryClassName)
|
||||||
.addType(
|
.addType(
|
||||||
TypeSpec.interfaceBuilder(assistedFactoryClassName)
|
TypeSpec.interfaceBuilder(assistedFactoryClassName)
|
||||||
|
.addOriginatingKSFile(ksClass.containingFile!!)
|
||||||
.addSuperinterface(ClassName.bestGuess(assistedNodeFactoryFqName.asString()).parameterizedBy(nodeClassName))
|
.addSuperinterface(ClassName.bestGuess(assistedNodeFactoryFqName.asString()).parameterizedBy(nodeClassName))
|
||||||
.addAnnotation(AssistedFactory::class)
|
.addAnnotation(AssistedFactory::class)
|
||||||
.addFunction(
|
.addFunction(
|
||||||
|
|
@ -155,10 +155,7 @@ class ContributesNodeProcessor(
|
||||||
|
|
||||||
content.writeTo(
|
content.writeTo(
|
||||||
codeGenerator = codeGenerator,
|
codeGenerator = codeGenerator,
|
||||||
dependencies = Dependencies(
|
dependencies = Dependencies(aggregating = false),
|
||||||
aggregating = true,
|
|
||||||
ksClass.containingFile!!
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue