diff options
author | Jiaxiang Chen <jiaxiang@google.com> | 2022-08-25 15:06:22 -0700 |
---|---|---|
committer | Jiaxiang Chen <roaringacw@gmail.com> | 2022-08-27 21:52:58 -0700 |
commit | 3331f287926daf5922334d43401a8382b035684a (patch) | |
tree | 457b349052beaa500f3e339a3aa2ac314592e3c5 /test-utils/src/main/kotlin/com/google/devtools | |
parent | ab9bbf7439b07273a7dd99419dfb125bcb228458 (diff) | |
download | ksp-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/google/devtools')
-rw-r--r-- | test-utils/src/main/kotlin/com/google/devtools/ksp/processor/AnnotationArgumentProcessor.kt | 13 |
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()) } |