google / google/ksp

`Resolver.effectiveJavaModifiers` does not resolve transitive type aliases

Open
#3,123 0 comments 0 reactions 1 assignee Claimed by @jaschdoc View on GitHub
bug P3
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.