diff --git a/plugins/devkit/devkit-core/resources/inspectionDescriptions/StaticInitializationInExtensions.html b/plugins/devkit/devkit-core/resources/inspectionDescriptions/StaticInitializationInExtensions.html index 391c55de2f3e..4ddd6400c7a0 100644 --- a/plugins/devkit/devkit-core/resources/inspectionDescriptions/StaticInitializationInExtensions.html +++ b/plugins/devkit/devkit-core/resources/inspectionDescriptions/StaticInitializationInExtensions.html @@ -1,9 +1,9 @@ -Reports static initialization in IDE extensions. +Reports static initialization in extension point implementations.

Static initialization is performed once the class is loaded, which may cause excessive classloading or early initialization of heavy resources. - Since IDE extensions are supposed to be cheap to create, they must not have static initializers. + Since extension point implementations are supposed to be cheap to create, they must not have static initializers.

New in 2023.3 diff --git a/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml b/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml index 027dda5eb66c..af9679ef4c9c 100644 --- a/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml +++ b/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml @@ -398,7 +398,7 @@ implementationClass="org.jetbrains.idea.devkit.inspections.IncorrectProcessCanceledExceptionHandlingInspection" key="inspections.incorrect.process.canceled.exception.handling.display.name"/> - static { - System.out.println(); - } + static { } } \ No newline at end of file diff --git a/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.java b/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.java index de8bb8e882c8..936c73a6d10d 100644 --- a/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.java +++ b/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.java @@ -1,7 +1,5 @@ class ExtensionWithoutStaticInitialization implements MyExtension { - ExtensionWithoutStaticInitialization() { - System.out.println(); - } + ExtensionWithoutStaticInitialization() { } } \ No newline at end of file diff --git a/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/NonExtension.java b/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/NonExtension.java index f0e2ca1e4c94..6725de4841ee 100644 --- a/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/NonExtension.java +++ b/plugins/devkit/devkit-java-tests/testData/inspections/staticInitializationInExtensions/NonExtension.java @@ -1,5 +1,3 @@ class NonExtension { - static { - System.out.println(); - } + static { } } \ No newline at end of file diff --git a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithStaticInitialization.kt b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithStaticInitialization.kt index d9303b3a15d8..a25fabdfd5d7 100644 --- a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithStaticInitialization.kt +++ b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithStaticInitialization.kt @@ -1,13 +1,7 @@ -@file:Suppress("UNUSED_VARIABLE") - class ExtensionWithStaticInitialization : MyExtension { companion object { - init { - val a = 0 - } + init { } - init { - val b = 0 - } + init { } } } \ No newline at end of file diff --git a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.kt b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.kt index 9c1865b7cfb4..48653ff5f47e 100644 --- a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.kt +++ b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/ExtensionWithoutStaticInitialization.kt @@ -1,7 +1,3 @@ -@file:Suppress("UNUSED_VARIABLE") - class ExtensionWithoutStaticInitialization : MyExtension { - init { - val a = 0 - } + init { } } \ No newline at end of file diff --git a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/NonExtension.kt b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/NonExtension.kt index fc1d247539f5..3aace9e2e817 100644 --- a/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/NonExtension.kt +++ b/plugins/devkit/devkit-kotlin-tests/testData/inspections/staticInitializationInExtensions/NonExtension.kt @@ -1,9 +1,5 @@ -@file:Suppress("UNUSED_VARIABLE") - class NonExtension { companion object { - init { - val a = 0 - } + init { } } } \ No newline at end of file diff --git a/plugins/devkit/devkit-tests/testSrc/org/jetbrains/idea/devkit/inspections/StaticInitializationInExtensionsInspectionTestBase.kt b/plugins/devkit/devkit-tests/testSrc/org/jetbrains/idea/devkit/inspections/StaticInitializationInExtensionsInspectionTestBase.kt index 40ca80ca747b..40a75e6ad522 100644 --- a/plugins/devkit/devkit-tests/testSrc/org/jetbrains/idea/devkit/inspections/StaticInitializationInExtensionsInspectionTestBase.kt +++ b/plugins/devkit/devkit-tests/testSrc/org/jetbrains/idea/devkit/inspections/StaticInitializationInExtensionsInspectionTestBase.kt @@ -27,9 +27,7 @@ abstract class StaticInitializationInExtensionsInspectionTestBase : PluginModule """ import com.intellij.openapi.extensions.ExtensionPointName; - public interface MyExtension { - ExtensionPointName EP_NAME = new ExtensionPointName<>("com.intellij.example.myExtension"); - } + public interface MyExtension { } """.trimIndent() ) }