aboutsummaryrefslogtreecommitdiff
path: root/integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt
diff options
context:
space:
mode:
Diffstat (limited to 'integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt')
-rw-r--r--integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt29
1 files changed, 29 insertions, 0 deletions
diff --git a/integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt b/integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt
new file mode 100644
index 00000000..45dbe22b
--- /dev/null
+++ b/integration-tests/src/test/resources/kmp/test-processor/src/main/kotlin/ValidateProcessor.kt
@@ -0,0 +1,29 @@
+import com.google.devtools.ksp.processing.*
+import com.google.devtools.ksp.symbol.*
+import com.google.devtools.ksp.validate
+
+class ValidateProcessor(val codeGenerator: CodeGenerator, val logger: KSPLogger) : SymbolProcessor {
+ var invoked = false
+
+ override fun process(resolver: Resolver): List<KSAnnotated> {
+ if (invoked) {
+ return emptyList()
+ }
+ invoked = true
+
+ val toValidate = resolver.getSymbolsWithAnnotation("com.example.MyAnnotation")
+ if (toValidate.firstOrNull() == null || !toValidate.all { it.validate() }) {
+ logger.error("$toValidate.validate(): not ok")
+ }
+ if ((toValidate as? KSClassDeclaration)?.asStarProjectedType()?.isError == true) {
+ logger.error("$toValidate.asStarProjectedType(): not ok")
+ }
+ return emptyList()
+ }
+}
+
+class ValidateProcessorProvider : SymbolProcessorProvider {
+ override fun create(env: SymbolProcessorEnvironment): SymbolProcessor {
+ return ValidateProcessor(env.codeGenerator, env.logger)
+ }
+}