[FIR] Refactor the default messages presence checking
Forbid calling `checkMissingMessages` accidentally
outside tests.
Checking Parcelize default messages inside a test.
diff --git a/compiler/build.gradle.kts b/compiler/build.gradle.kts
index f49dc65..f2a3565 100644
--- a/compiler/build.gradle.kts
+++ b/compiler/build.gradle.kts
@@ -20,6 +20,7 @@
testCompileOnly(project(":kotlin-test:kotlin-test-jvm"))
testCompileOnly(project(":kotlin-test:kotlin-test-junit"))
testApi(projectTests(":compiler:tests-common"))
+ testApi(projectTests(":compiler:tests-common-new"))
testApi(projectTests(":compiler:fir:raw-fir:psi2fir"))
testApi(projectTests(":compiler:fir:raw-fir:light-tree2fir"))
testApi(projectTests(":compiler:fir:analysis-tests:legacy-fir-tests"))
diff --git a/compiler/tests-common-new/build.gradle.kts b/compiler/tests-common-new/build.gradle.kts
index 8df3fa3..6d299e6 100644
--- a/compiler/tests-common-new/build.gradle.kts
+++ b/compiler/tests-common-new/build.gradle.kts
@@ -13,6 +13,7 @@
testImplementation(project(":compiler:backend.jvm.entrypoint"))
testImplementation(project(":compiler:backend.jvm.lower"))
testImplementation(intellijCore())
+ testImplementation(commonDependency("org.jetbrains.kotlin:kotlin-reflect")) { isTransitive = false }
testRuntimeOnly(project(":core:descriptors.runtime"))
diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessagesHelper.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/utils/FirErrorsDefaultMessagesHelper.kt
similarity index 95%
rename from compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessagesHelper.kt
rename to compiler/tests-common-new/tests/org/jetbrains/kotlin/test/utils/FirErrorsDefaultMessagesHelper.kt
index a8a4a9c..683dd9b 100644
--- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrorsDefaultMessagesHelper.kt
+++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/utils/FirErrorsDefaultMessagesHelper.kt
@@ -3,7 +3,7 @@
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
-package org.jetbrains.kotlin.fir.analysis.diagnostics
+package org.jetbrains.kotlin.test.utils
import org.jetbrains.kotlin.diagnostics.AbstractKtDiagnosticFactory
import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactoryForDeprecation
diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DefaultMessagesTest.kt b/compiler/tests/org/jetbrains/kotlin/checkers/DefaultMessagesTest.kt
index 4d77fbb..8edfa37 100644
--- a/compiler/tests/org/jetbrains/kotlin/checkers/DefaultMessagesTest.kt
+++ b/compiler/tests/org/jetbrains/kotlin/checkers/DefaultMessagesTest.kt
@@ -7,7 +7,6 @@
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrorsDefaultMessages
-import org.jetbrains.kotlin.fir.analysis.diagnostics.checkMissingMessages
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrorsDefaultMessages
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
@@ -16,6 +15,7 @@
import org.jetbrains.kotlin.fir.analysis.diagnostics.native.FirNativeErrorsDefaultMessages
import org.jetbrains.kotlin.fir.builder.FirSyntaxErrors
import org.jetbrains.kotlin.fir.builder.FirSyntaxErrorsDefaultMessages
+import org.jetbrains.kotlin.test.utils.checkMissingMessages
import org.junit.Test
class DefaultMessagesTest {
diff --git a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt
index 784dbea..4c23eaa 100644
--- a/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt
+++ b/plugins/parcelize/parcelize-compiler/parcelize.k2/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt
@@ -20,7 +20,6 @@
import org.jetbrains.kotlin.diagnostics.rendering.BaseDiagnosticRendererFactory
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_TYPE
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticRenderers.RENDER_CLASS_OR_OBJECT
-import org.jetbrains.kotlin.fir.analysis.diagnostics.checkMissingMessages
import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.CLASS_SHOULD_BE_PARCELIZE
import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.CREATOR_DEFINITION_IS_NOT_ALLOWED
import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize.DEPRECATED_ANNOTATION
@@ -171,7 +170,5 @@
DEPRECATED_PARCELER,
"'kotlinx.android.parcel.Parceler' is deprecated. Use 'kotlinx.parcelize.Parceler' instead"
)
-
- map.checkMissingMessages(KtErrorsParcelize)
}
}
diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeDefaultMessagesTest.kt b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeDefaultMessagesTest.kt
new file mode 100644
index 0000000..fd862736c
--- /dev/null
+++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/ParcelizeDefaultMessagesTest.kt
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.parcelize.test
+
+import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtDefaultErrorMessagesParcelize
+import org.jetbrains.kotlin.parcelize.fir.diagnostics.KtErrorsParcelize
+import org.jetbrains.kotlin.test.utils.checkMissingMessages
+import org.junit.jupiter.api.Test
+
+class ParcelizeDefaultMessagesTest {
+ @Test
+ fun ensureAllMessagesPresent() {
+ KtDefaultErrorMessagesParcelize.MAP.checkMissingMessages(KtErrorsParcelize)
+ }
+}