Skip to content

Annotations on enum entires on K2 are missing #1962

@ansman

Description

@ansman

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: []

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions