Inspectopedia Help

Repeated annotation which is not marked as '@Repeatable'

Reports the repeated use of a non-@Repeatable annotation on property accessors.

As a result of using non-@Repeatable annotation multiple times, both annotation usages will appear in the bytecode leading to an ambiguity in reflection calls.

Since Kotlin 1.4 it's mandatory to either mark annotation as @Repeatable or not repeat the annotation, otherwise it will lead to compilation error.

Example:

annotation class Foo(val x: Int) @get:Foo(10) val a: String @Foo(20) get() = "foo" // annotation repeated twice but not marked as @Repeatable

This inspection only reports if the Kotlin language level of the project or module is 1.4 or higher.

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Kotlin, 241.14841-IJ

Last modified: 12 March 2024