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

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Kotlin, @snapshot@

Last modified: 13 July 2023