Skip to content

Commit dc38b13

Browse files
committed
Clear caches before early exit
1 parent ad8a047 commit dc38b13

File tree

6 files changed

+18
-17
lines changed

6 files changed

+18
-17
lines changed

kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/KotlinSymbolProcessing.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,10 +541,6 @@ class KotlinSymbolProcessing(
541541
}
542542
}
543543

544-
if (logger.hasError || codeGenerator.generatedFile.isEmpty()) {
545-
break
546-
}
547-
548544
// Drop caches
549545
KotlinGlobalModificationService.getInstance(project).publishGlobalSourceModuleStateModification()
550546
KtAnalysisSessionProvider.getInstance(project).clearCaches()
@@ -553,6 +549,10 @@ class KotlinSymbolProcessing(
553549

554550
KSObjectCacheManager.clear()
555551

552+
if (logger.hasError || codeGenerator.generatedFile.isEmpty()) {
553+
break
554+
}
555+
556556
newKSFiles = prepareNewKSFiles(
557557
kotlinCoreProjectEnvironment,
558558
javaFileManager,

kotlin-analysis-api/src/test/kotlin/com/google/devtools/ksp/test/KSPAATest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,16 @@ class KSPAATest : AbstractKSPAATest() {
145145
runTest("../test-utils/testData/api/builtInTypes.kt")
146146
}
147147

148-
@TestMetadata("A.kt")
148+
@TestMetadata("objCacheA.kt")
149149
@Test
150-
fun testA() {
151-
runTest("../test-utils/testData/api/A.kt")
150+
fun testObjCacheA() {
151+
runTest("../test-utils/testData/api/objCacheA.kt")
152152
}
153153

154-
@TestMetadata("B.kt")
154+
@TestMetadata("objCacheB.kt")
155155
@Test
156-
fun testB() {
157-
runTest("../test-utils/testData/api/B.kt")
156+
fun testObjCacheB() {
157+
runTest("../test-utils/testData/api/objCacheB.kt")
158158
}
159159

160160
@Disabled

test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AProcessor.kt renamed to test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheAProcessor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.google.devtools.ksp.getDeclaredProperties
66
import com.google.devtools.ksp.processing.Resolver
77
import com.google.devtools.ksp.symbol.KSAnnotated
88

9-
open class AProcessor : AbstractTestProcessor() {
9+
open class ObjCacheAProcessor : AbstractTestProcessor() {
1010
val results = mutableListOf<String>()
1111
override fun toResult(): List<String> {
1212
return results
@@ -15,7 +15,7 @@ open class AProcessor : AbstractTestProcessor() {
1515
@OptIn(KspExperimental::class)
1616
override fun process(resolver: Resolver): List<KSAnnotated> {
1717
resolver.getClassDeclarationByName("BaseClass")!!.let { cls ->
18-
println(cls.getDeclaredProperties().map { "${it.simpleName.asString()}(${it.hasBackingField})" }.toList())
18+
results.addAll(cls.getDeclaredProperties().map { "${it.simpleName.asString()}(${it.hasBackingField})" })
1919
}
2020
return emptyList()
2121
}

test-utils/src/main/kotlin/com/google/devtools/ksp/processor/BProcessor.kt renamed to test-utils/src/main/kotlin/com/google/devtools/ksp/processor/ObjCacheBProcessor.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import com.google.devtools.ksp.getDeclaredProperties
66
import com.google.devtools.ksp.processing.Resolver
77
import com.google.devtools.ksp.symbol.KSAnnotated
88

9-
open class BProcessor : AbstractTestProcessor() {
9+
open class ObjCacheBProcessor : AbstractTestProcessor() {
1010
val results = mutableListOf<String>()
1111
override fun toResult(): List<String> {
1212
return results
@@ -15,8 +15,7 @@ open class BProcessor : AbstractTestProcessor() {
1515
@OptIn(KspExperimental::class)
1616
override fun process(resolver: Resolver): List<KSAnnotated> {
1717
resolver.getClassDeclarationByName("BaseClass")!!.let { cls ->
18-
println(cls.getDeclaredProperties().map { "${it.simpleName.asString()}(${it.hasBackingField})" }.toList())
19-
// `hasBackingField` is true when running the test individually but is false when running the whole KSPAATest.
18+
results.addAll(cls.getDeclaredProperties().map { "${it.simpleName.asString()}(${it.hasBackingField})" })
2019
}
2120
return emptyList()
2221
}

test-utils/testData/api/A.kt renamed to test-utils/testData/api/objCacheA.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
*/
1717

1818
// WITH_RUNTIME
19-
// TEST PROCESSOR: AProcessor
19+
// TEST PROCESSOR: ObjCacheAProcessor
2020
// EXPECTED:
21+
// genericProp(true)
2122
// END
2223
// MODULE: lib
2324
// FILE: Test.kt

test-utils/testData/api/B.kt renamed to test-utils/testData/api/objCacheB.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
*/
1717

1818
// WITH_RUNTIME
19-
// TEST PROCESSOR: BProcessor
19+
// TEST PROCESSOR: ObjCacheBProcessor
2020
// EXPECTED:
21+
// value(true)
2122
// END
2223
// MODULE: lib
2324
// FILE: Test.kt

0 commit comments

Comments
 (0)