`Resolver.effectiveJavaModifiers` does not resolve transitive type aliases
- Dominant language
- Kotlin
- Stars
- 3.5k
- Forks
- 415
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 53
Description
This was observed in https://github.com/google/ksp/pull/3122
The `CustomJvmStatic` annotation is declared as `typealias CustomJvmStatic = JvmStatic`.
https://github.com/google/ksp/blob/f0115ec4b6bb21067d072b068ddf4296a951b911/kotlin-analysis-api/testData/javaModifiers.kt#L247-L250
`Resolver.effectiveJavaModifiers` doe not resolve those type aliases since it checks fully qualified name of the declaration and not the referenced / aliased type. It's probably implemented this way to avoid resolving type aliases, since it's a very rare case. However, it could be extended with a flag to opt-in to resolution of type aliases.
I'm not sure how it interacts with transitive type aliases. They probably need to be resolved recursively.
Contributor guide
Assessment
This issue has not been assessed yet.