Skip to content

Commit

Permalink
Test default annotation values
Browse files Browse the repository at this point in the history
  • Loading branch information
kuanyingchou committed Apr 11, 2024
1 parent cf3b401 commit 207b8aa
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 1 deletion.
18 changes: 17 additions & 1 deletion kotlin-analysis-api/testData/annotationValue/java.kt
Expand Up @@ -31,8 +31,24 @@
// 31
// [warning1, warning 2]
// END
// FILE: a.kt
// MODULE: module1
// FILE: placeholder.kt
// FILE: TestLib.java
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.TYPE_USE})
@interface MyAnnotation {
String stringParam() default "1";
String stringParam2() default "1";
String[] stringArrayParam() default {"3", "5", "7"};
}
interface MyInterface {}
@MyAnnotation(stringParam = "2") class MyClassInLib implements MyInterface {}
// MODULE: main(module1)
// FILE: Test.java
@MyAnnotation(stringParam = "2") class MyClass implements MyInterface {}

// FILE: a.kt
enum class RGB {
R, G, B
}
Expand Down
Expand Up @@ -29,6 +29,14 @@ class AnnotationArgumentProcessor : AbstractTestProcessor() {
val visitor = ArgumentVisitor()

override fun process(resolver: Resolver): List<KSAnnotated> {
listOf("MyClass", "MyClassInLib").forEach { clsName ->
resolver.getClassDeclarationByName(clsName)!!.let { cls ->
cls.annotations.single().arguments.forEach {
println("${clsName}: ${it.name!!.asString()} = ${it.value}")
}
}
}

resolver.getSymbolsWithAnnotation("Bar", true).forEach {
it.annotations.forEach { it.arguments.forEach { it.accept(visitor, Unit) } }
}
Expand Down
16 changes: 16 additions & 0 deletions test-utils/testData/api/annotationValue_java.kt
Expand Up @@ -31,6 +31,22 @@
// 31
// [warning1, warning 2]
// END
// MODULE: module1
// FILE: placeholder.kt
// FILE: TestLib.java
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.TYPE_USE})
@interface MyAnnotation {
String stringParam() default "1";
String stringParam2() default "1";
String[] stringArrayParam() default {"3", "5", "7"};
}
interface MyInterface {}
@MyAnnotation(stringParam = "2") class MyClassInLib implements MyInterface {}
// MODULE: main(module1)
// FILE: Test.java
@MyAnnotation(stringParam = "2") class MyClass implements MyInterface {}
// FILE: a.kt

enum class RGB {
Expand Down

0 comments on commit 207b8aa

Please sign in to comment.