Skip to content

Commit

Permalink
Test enum values
Browse files Browse the repository at this point in the history
  • Loading branch information
kuanyingchou committed Apr 11, 2024
1 parent cf3b401 commit d8fa1e7
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,16 @@ class AnnotationArgumentProcessor : AbstractTestProcessor() {
val visitor = ArgumentVisitor()

override fun process(resolver: Resolver): List<KSAnnotated> {
resolver.getSymbolsWithAnnotation("Bar", true).forEach {
it.annotations.forEach { it.arguments.forEach { it.accept(visitor, Unit) } }
listOf("Bar", "BarJava").forEach { annotation ->
resolver.getSymbolsWithAnnotation(annotation, true).forEach {
println(">>> $it")
it.annotations.forEach { it.arguments.forEach { it.accept(visitor, Unit) } }
}
}
resolver.getClassDeclarationByName("TestLib")!!.let { cls ->
cls.annotations.forEach {
it.arguments.forEach { it.accept(visitor, Unit) }
}
}

val C = resolver.getClassDeclarationByName("C")
Expand All @@ -53,8 +61,14 @@ class AnnotationArgumentProcessor : AbstractTestProcessor() {
inner class ArgumentVisitor : KSVisitorVoid() {
override fun visitValueArgument(valueArgument: KSValueArgument, data: Unit) {
if (valueArgument.value is KSType) {
println("adding KSType: ${valueArgument.value} : ${valueArgument.value!!::class}")
results.add((valueArgument.value as KSType).declaration.toString())
} else {
println("adding non-KSType: ${valueArgument.value} : ${
valueArgument.value?.let {
it::class
} ?: "null"
}")
results.add(valueArgument.value.toString())
}
}
Expand Down
30 changes: 25 additions & 5 deletions test-utils/testData/api/annotationValue_kt.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,28 @@
// G
// ONE
// 31
// 42
// JavaEnum
// 42
// null
// Throws
// END
// FILE: a.kt
// MODULE: module1
// FILE: JavaEnum.java
enum JavaEnum { ONE, TWO, THREE }
@interface BarJava {
int i();
JavaEnum argJavaEnum();
}
// FILE: TestLib.java
@BarJava(
i = 42,
argJavaEnum = JavaEnum.ONE
)
class TestLib {}

// MODULE: main(module1)
// FILE: a.kt
enum class RGB {
R, G, B
}
Expand Down Expand Up @@ -90,7 +108,9 @@ fun Fun() {
)
class Local
}

// FILE: JavaEnum.java

enum JavaEnum { ONE, TWO, THREE }
// FILE: Test.java
@BarJava(
i = 42,
argJavaEnum = JavaEnum.ONE
)
class Test {}

0 comments on commit d8fa1e7

Please sign in to comment.