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

Locating this inspection

By ID

Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

ProhibitRepeatedUseSiteTargetAnnotationsMigration
Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Kotlin | Migration

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

Availability

By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Kotlin, 241.18072-IJ

Last modified: 18 June 2024