Inspectopedia Help

Kotlin object registered as extension

Reports Kotlin objects that are registered as plugin extensions.

Extensions lifecycle is managed by the IntelliJ Platform. Using Kotlin objects for extension registration may cause creation of unnecessary extension instances and make plugin unloading impossible.

Extension registration:

<annotator language="myLang" implementationClass="com.example.MyAnnotator"/>

Extension implementation:

// bad: object MyAnnotator : Annotator { ... } // good: class MyAnnotator : Annotator { ... }

New in 2023.1

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Plugin DevKit, 241.16690

Last modified: 29 April 2024