Skip to content

Resolver.effectiveJavaModifiers does not resolve transitive type aliases #3123

Open

Description

@jaschdoc

This was observed in #3122

The CustomJvmStatic annotation is declared as typealias CustomJvmStatic = JvmStatic.

@CustomJvmStatic
fun customJvmStaticCompanionMethod() {}
@CustomJvmStatic
val customJvmStaticCompanionField:String = ""

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.

Activity

  1. self-assigned this
    on Aug 7, 2026
  2. added theissue type on Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P3desirablebugSomething isn't working

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions