I have a test case in my annotation processor that reads the annotations on enum entires. When trying it on K2 with KSP2, the test fails. Upon investigating, it's because there are no annotations present.
The enum in question looks like this:
@JsonSerializable
enum class SomeEnum {
VALUE1,
VALUE2,
@JsonProperty(name = "VALUE3-alt")
VALUE3,
VALUE4,
VALUE5
}
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
@Target(AnnotationTarget.FIELD)
annotation class JsonProperty(val name: String)
I dumped all annotations on all declarations using this:
for (decl in targetElement.declarations) {
logger.logKotshiError(decl.simpleName.asString(), decl)
logger.logKotshiError(decl.annotations.toList().toString(), decl)
}
and this is what's printed:
e: [ksp] Kotshi: <init>
e: [ksp] Kotshi: []
e: [ksp] Kotshi: VALUE1
e: [ksp] Kotshi: []
e: [ksp] Kotshi: VALUE2
e: [ksp] Kotshi: []
e: [ksp] Kotshi: VALUE3
e: [ksp] Kotshi: []
e: [ksp] Kotshi: VALUE4
e: [ksp] Kotshi: []
e: [ksp] Kotshi: VALUE5
e: [ksp] Kotshi: []
e: [ksp] Kotshi: values
e: [ksp] Kotshi: []
e: [ksp] Kotshi: valueOf
e: [ksp] Kotshi: []
e: [ksp] Kotshi: entries
e: [ksp] Kotshi: []
On KSP1, this is logged:
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:7: Kotshi: VALUE1
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:7: Kotshi: []
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:8: Kotshi: VALUE2
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:8: Kotshi: []
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:11: Kotshi: VALUE3
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:11: Kotshi: [@JsonProperty]
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:13: Kotshi: VALUE4
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:13: Kotshi: [@Json]
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:14: Kotshi: VALUE5
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:14: Kotshi: []
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:6: Kotshi: <init>
e: [ksp] /Users/nicklas/Repositories/personal/kotshi/tests/src/main/kotlin/se/ansman/kotshi/SomeEnum.kt:6: Kotshi: []
I have a test case in my annotation processor that reads the annotations on enum entires. When trying it on K2 with KSP2, the test fails. Upon investigating, it's because there are no annotations present.
The enum in question looks like this:
I dumped all annotations on all declarations using this:
and this is what's printed:
On KSP1, this is logged: