aboutsummaryrefslogtreecommitdiff
path: root/test-utils/src/main
diff options
context:
space:
mode:
authorJiaxiang Chen <jiaxiang@google.com>2022-05-09 21:47:13 -0700
committerJiaxiang Chen <roaringacw@gmail.com>2022-05-10 10:13:57 -0700
commit089f0f752d19f87be742a1d061e7ef79e91beaaa (patch)
treecd2f65927b81dc3057c7ae0318d12ce2a125cc5b /test-utils/src/main
parentce703a3e5d43fd8390f8cba63b37e83d9bca0f14 (diff)
downloadksp-089f0f752d19f87be742a1d061e7ef79e91beaaa.tar.gz
try to get psi before creating sealed sub class declarations
Diffstat (limited to 'test-utils/src/main')
-rw-r--r--test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt15
1 files changed, 14 insertions, 1 deletions
diff --git a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt
index 073474a1..9cb6ea70 100644
--- a/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt
+++ b/test-utils/src/main/kotlin/com/google/devtools/ksp/processor/SealedClassProcessor.kt
@@ -17,6 +17,7 @@
package com.google.devtools.ksp.processor
+import com.google.devtools.ksp.getClassDeclarationByName
import com.google.devtools.ksp.processing.Resolver
import com.google.devtools.ksp.symbol.*
@@ -28,10 +29,22 @@ class SealedClassProcessor : AbstractTestProcessor() {
}
override fun process(resolver: Resolver): List<KSAnnotated> {
+ result.add("from lib")
+ resolver.getClassDeclarationByName("lib.Expr")!!.let {
+ result.add(
+ it.getSealedSubclasses().map { sub ->
+ "${sub.simpleName.asString()}: ${sub.origin}"
+ }.toList().sorted().toString()
+ )
+ }
+
+ result.add("from source")
resolver.getNewFiles().forEach { f ->
f.declarations.forEach {
if (it is KSClassDeclaration) {
- val subs = it.getSealedSubclasses().map { it.simpleName.asString() }.toList().sorted()
+ val subs = it.getSealedSubclasses().map { sub ->
+ "${sub.simpleName.asString()}: ${sub.origin}"
+ }.toList().sorted()
result.add("${it.simpleName.asString()} : $subs")
}
}