diff options
Diffstat (limited to 'integration-tests/src/test/resources/map-annotation-arguments/test-processor/src/main/kotlin/TestProcessor.kt')
-rw-r--r-- | integration-tests/src/test/resources/map-annotation-arguments/test-processor/src/main/kotlin/TestProcessor.kt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/integration-tests/src/test/resources/map-annotation-arguments/test-processor/src/main/kotlin/TestProcessor.kt b/integration-tests/src/test/resources/map-annotation-arguments/test-processor/src/main/kotlin/TestProcessor.kt new file mode 100644 index 00000000..7892f012 --- /dev/null +++ b/integration-tests/src/test/resources/map-annotation-arguments/test-processor/src/main/kotlin/TestProcessor.kt @@ -0,0 +1,36 @@ +import com.google.devtools.ksp.getClassDeclarationByName +import com.google.devtools.ksp.processing.* +import com.google.devtools.ksp.symbol.* + +class TestProcessor( + val codeGenerator: CodeGenerator, + val logger: KSPLogger +) : SymbolProcessor { + val expected = mapOf( + "unboxedChar" to "Char", + "boxedChar" to "(Char..Char?)", + ) + + override fun process(resolver: Resolver): List<KSAnnotated> { + val j = resolver.getClassDeclarationByName("com.example.AnnotationTest")!! + j.annotations.forEach { annotation -> + annotation.arguments.forEach { + val key = it.name?.asString() + val value = it.value.toString() + if (expected[key] != value) { + logger.error("$key: ${expected[key]} != $value") + } + } + } + + return emptyList() + } +} + +class TestProcessorProvider : SymbolProcessorProvider { + override fun create( + environment: SymbolProcessorEnvironment + ): SymbolProcessor { + return TestProcessor(environment.codeGenerator, environment.logger) + } +} |