aboutsummaryrefslogtreecommitdiff
path: root/test-utils/src/main/kotlin/com
diff options
context:
space:
mode:
authorJiaxiang Chen <jiaxiang@google.com>2022-08-25 15:06:22 -0700
committerJiaxiang Chen <roaringacw@gmail.com>2022-08-27 21:52:58 -0700
commit3331f287926daf5922334d43401a8382b035684a (patch)
tree457b349052beaa500f3e339a3aa2ac314592e3c5 /test-utils/src/main/kotlin/com
parentab9bbf7439b07273a7dd99419dfb125bcb228458 (diff)
downloadksp-3331f287926daf5922334d43401a8382b035684a.tar.gz
AA: implement annotation argument value.
* implemented reading annotation arguments declared in Kt source. * implemented annotation default value reading for Kt sources. * implemented function local declarations. * refactored `KSType.declaration` for better handling local classes. * refactored `KSClassDeclaration` implementation to use more abstract KtSymbol. * split annotationValue tests into kotlin and java. * unmutes annotationValue_kt test.
Diffstat (limited to 'test-utils/src/main/kotlin/com')
-rw-r--r--test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt13
1 files changed, 6 insertions, 7 deletions
diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt
index 3fd6634a..68e263c6 100644
--- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt
+++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt
@@ -30,16 +30,15 @@ class AnnotationArgumentProcessor : AbstractTestProcessor() {
override fun process(resolver: Resolver): List<KSAnnotated> {
resolver.getSymbolsWithAnnotation("Bar", true).forEach {
- val annotation = it.annotations.single()
- annotation.arguments.forEach { it.accept(visitor, Unit) }
+ it.annotations.forEach { it.arguments.forEach { it.accept(visitor, Unit) } }
}
- val C = resolver.getClassDeclarationByName("C")!!
- C.annotations.first().arguments.forEach { results.add(it.value.toString()) }
- val ThrowsClass = resolver.getClassDeclarationByName("ThrowsClass")!!
- ThrowsClass.declarations.filter {
+ val C = resolver.getClassDeclarationByName("C")
+ C?.annotations?.first()?.arguments?.forEach { results.add(it.value.toString()) }
+ val ThrowsClass = resolver.getClassDeclarationByName("ThrowsClass")
+ ThrowsClass?.declarations?.filter {
it.simpleName.asString() == "throwsException"
- }.forEach {
+ }?.forEach {
it.annotations.single().annotationType.resolve().declaration.let {
results.add(it.toString())
}