Skip to content

Commit 592bffa

Browse files
committed
Fix file generation issue on rebuild (#862)
If containingFile is null, add the full source set to the dependencies list for re-generation
1 parent 623a456 commit 592bffa

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

querydsl-tooling/querydsl-ksp-codegen/src/main/kotlin/com/querydsl/ksp/codegen/QueryDslProcessor.kt

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.querydsl.ksp.codegen
22

33
import com.google.devtools.ksp.processing.CodeGenerator
4+
import com.google.devtools.ksp.processing.Dependencies
45
import com.google.devtools.ksp.processing.Resolver
56
import com.google.devtools.ksp.processing.SymbolProcessor
67
import com.google.devtools.ksp.symbol.*
@@ -12,8 +13,10 @@ class QueryDslProcessor(
1213
private val codeGenerator: CodeGenerator
1314
) : SymbolProcessor {
1415
val typeProcessor = QueryModelExtractor(settings)
16+
lateinit var typeResolver: Resolver
1517

1618
override fun process(resolver: Resolver): List<KSAnnotated> {
19+
typeResolver = resolver
1720
if (settings.enable) {
1821
QueryModelType.entries.forEach { type ->
1922
resolver.getSymbolsWithAnnotation(type.associatedAnnotation)
@@ -29,14 +32,22 @@ class QueryDslProcessor(
2932
val models = typeProcessor.process()
3033
models.forEach { model ->
3134
val typeSpec = QueryModelRenderer.render(model)
35+
36+
val sources = if (model.originatingFile != null) {
37+
arrayOf(model.originatingFile)
38+
} else if (this::typeResolver.isInitialized) {
39+
typeResolver.getAllFiles().toList().toTypedArray()
40+
} else {
41+
emptyArray()
42+
}
43+
3244
FileSpec.builder(model.className)
3345
.indent(settings.indent)
3446
.addType(typeSpec)
3547
.build()
3648
.writeTo(
37-
codeGenerator = codeGenerator,
38-
aggregating = false,
39-
originatingKSFiles = listOfNotNull(model.originatingFile)
49+
codeGenerator,
50+
Dependencies(false, *sources)
4051
)
4152
}
4253
}

0 commit comments

Comments
 (0)