diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 2139b8ff041..c7bb28cd78c 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -53,7 +53,7 @@ - + diff --git a/.idea/kotlinTestDataPluginTestDataPaths.xml b/.idea/kotlinTestDataPluginTestDataPaths.xml index 2cdabc10bb9..c38fdcaca2e 100644 --- a/.idea/kotlinTestDataPluginTestDataPaths.xml +++ b/.idea/kotlinTestDataPluginTestDataPaths.xml @@ -79,11 +79,11 @@ diff --git a/generators/protobuf/GenerateProtoBuf.kt b/generators/protobuf/GenerateProtoBuf.kt index 9f492f2a795..70a48a6b321 100644 --- a/generators/protobuf/GenerateProtoBuf.kt +++ b/generators/protobuf/GenerateProtoBuf.kt @@ -53,7 +53,7 @@ val PROTO_PATHS: List = listOf( ProtoPath("compiler/util-klib-metadata/src/KlibMetadataProtoBuf.proto"), ProtoPath("compiler/ir/serialization.common/src/KotlinIr.proto", false), ProtoPath("compiler/ir/serialization.jvm/src/JvmIr.proto", false), - ProtoPath("plugins/kotlin-serialization/kotlin-serialization-compiler/src/class_extensions.proto", generateDebug = false) + ProtoPath("plugins/kotlinx-serialization/kotlinx-serialization.k1/src/class_extensions.proto", generateDebug = false) ) private val EXT_OPTIONS_PROTO_PATH = ProtoPath("core/metadata/src/ext_options.proto") diff --git a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt index d699ad7cb0e..86b99e65283 100644 --- a/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt +++ b/generators/tests/org/jetbrains/kotlin/generators/tests/GenerateTests.kt @@ -207,23 +207,6 @@ fun main(args: Array) { } } - testGroup( - "plugins/kotlin-serialization/kotlin-serialization-compiler/test", - "plugins/kotlin-serialization/kotlin-serialization-compiler/testData" - ) { - testClass { - model("diagnostics") - } - - testClass { - model("codegen") - } - - testClass { - model("codegen") - } - } - testGroup("plugins/fir-plugin-prototype/fir-plugin-ic-test/tests-gen", "plugins/fir-plugin-prototype/fir-plugin-ic-test/testData") { testClass { model("pureKotlin", extension = null, recursive = false, targetBackend = TargetBackend.JVM_IR) diff --git a/libraries/tools/kotlin-maven-serialization/pom.xml b/libraries/tools/kotlin-maven-serialization/pom.xml index 197088baef9..cddc97228eb 100755 --- a/libraries/tools/kotlin-maven-serialization/pom.xml +++ b/libraries/tools/kotlin-maven-serialization/pom.xml @@ -6,8 +6,12 @@ 4.0.0 3.0.5 - ${basedir}/../../../plugins/kotlin-serialization/kotlin-serialization-compiler/src/ - ${basedir}/../../../plugins/kotlin-serialization/kotlin-serialization-compiler/resources/ + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.common/src + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k1/src + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.k2/src + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.backend/src + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/src + ${basedir}/../../../plugins/kotlinx-serialization/kotlinx-serialization.cli/resources ${basedir}/src/main/kotlin @@ -53,7 +57,11 @@ add-source - ${serialization.src} + ${serialization.common.src} + ${serialization.k1.src} + ${serialization.k2.src} + ${serialization.backend.src} + ${serialization.cli.src} ${serialization.maven.plugin.src} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/build.gradle.kts b/plugins/kotlin-serialization/kotlin-serialization-compiler/build.gradle.kts deleted file mode 100644 index e8b354e4b0b..00000000000 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/build.gradle.kts +++ /dev/null @@ -1,79 +0,0 @@ -description = "Kotlin Serialization Compiler Plugin" - -plugins { - kotlin("jvm") - id("jps-compatible") -} - -repositories { - mavenLocal() -} - -dependencies { - compileOnly(intellijCore()) - compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all")) - - compileOnly(project(":compiler:plugin-api")) - compileOnly(project(":compiler:cli-common")) - compileOnly(project(":compiler:frontend")) - compileOnly(project(":compiler:backend")) - compileOnly(project(":compiler:ir.backend.common")) - compileOnly(project(":compiler:backend.jvm")) - compileOnly(project(":compiler:ir.tree")) - compileOnly(project(":js:js.frontend")) - compileOnly(project(":js:js.translator")) - compileOnly(project(":kotlin-util-klib-metadata")) - - // FIR dependencies - compileOnly(project(":compiler:fir:cones")) - compileOnly(project(":compiler:fir:tree")) - compileOnly(project(":compiler:fir:resolve")) -// compileOnly(project(":compiler:fir:checkers")) -// compileOnly(project(":compiler:fir:checkers:checkers.jvm")) -// compileOnly(project(":compiler:fir:fir2ir")) -// compileOnly(project(":compiler:ir.tree.impl")) - compileOnly(project(":compiler:fir:entrypoint")) - - runtimeOnly(kotlinStdlib()) - - testApi(projectTests(":compiler:tests-common")) - testApi(projectTests(":compiler:test-infrastructure")) - testApi(projectTests(":compiler:test-infrastructure-utils")) - testApi(projectTests(":compiler:tests-compiler-utils")) - testApi(projectTests(":compiler:tests-common-new")) - testImplementation(projectTests(":generators:test-generator")) - testApi(commonDependency("junit:junit")) - testApiJUnit5(vintageEngine = true) - - testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.0-RC") - testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.0-RC") - - testRuntimeOnly(intellijCore()) - testRuntimeOnly(project(":kotlin-reflect")) - testRuntimeOnly(project(":core:descriptors.runtime")) -} - -sourceSets { - "main" { projectDefault() } - "test" { projectDefault() } -} - -tasks.withType> { - kotlinOptions { - freeCompilerArgs += "-opt-in=org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi" - } -} - -optInToExperimentalCompilerApi() - -runtimeJar() -sourcesJar() -javadocJar() -testsJar() - -projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) { - workingDir = rootDir - useJUnitPlatform() -} - -val generateTests by generator("org.jetbrains.kotlinx.serialization.TestGeneratorKt") diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/README.md b/plugins/kotlinx-serialization/README.md similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/README.md rename to plugins/kotlinx-serialization/README.md diff --git a/plugins/kotlinx-serialization/build.gradle.kts b/plugins/kotlinx-serialization/build.gradle.kts new file mode 100644 index 00000000000..0290b836cf4 --- /dev/null +++ b/plugins/kotlinx-serialization/build.gradle.kts @@ -0,0 +1,64 @@ +description = "Kotlin Serialization Compiler Plugin" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + embedded(project(":kotlinx-serialization-compiler-plugin.common")) + embedded(project(":kotlinx-serialization-compiler-plugin.k1")) + embedded(project(":kotlinx-serialization-compiler-plugin.k2")) + embedded(project(":kotlinx-serialization-compiler-plugin.backend")) + embedded(project(":kotlinx-serialization-compiler-plugin.cli")) + + testApi(project(":compiler:backend")) + testApi(project(":compiler:cli")) + testApi(project(":kotlinx-serialization-compiler-plugin.cli")) + + testApi(projectTests(":compiler:tests-common")) + testApi(projectTests(":compiler:test-infrastructure")) + testApi(projectTests(":compiler:test-infrastructure-utils")) + testApi(projectTests(":compiler:tests-compiler-utils")) + testApi(projectTests(":compiler:tests-common-new")) + testImplementation(projectTests(":generators:test-generator")) + testApi(commonDependency("junit:junit")) + testApiJUnit5(vintageEngine = true) + + testImplementation(project(":kotlinx-serialization-compiler-plugin.common")) + testImplementation(project(":kotlinx-serialization-compiler-plugin.k1")) + testImplementation(project(":kotlinx-serialization-compiler-plugin.k2")) + testImplementation(project(":kotlinx-serialization-compiler-plugin.backend")) + testImplementation(project(":kotlinx-serialization-compiler-plugin.cli")) + + testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.4.0-RC") + testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.0-RC") + + testRuntimeOnly(intellijCore()) + testRuntimeOnly(project(":kotlin-reflect")) + testRuntimeOnly(project(":core:descriptors.runtime")) +} + +optInToExperimentalCompilerApi() + +sourceSets { + "main" { none() } + "test" { + projectDefault() + generatedTestDir() + } +} + +optInToExperimentalCompilerApi() + +runtimeJar() +sourcesJar() +javadocJar() +testsJar() + +projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5) { + workingDir = rootDir + useJUnitPlatform() +} + +val generateTests by generator("org.jetbrains.kotlinx.serialization.TestGeneratorKt") diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.backend/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.backend/build.gradle.kts new file mode 100644 index 00000000000..645bec12136 --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/build.gradle.kts @@ -0,0 +1,31 @@ +description = "Kotlin Serialization Compiler Plugin (Backend)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:backend")) + compileOnly(project(":compiler:ir.backend.common")) + compileOnly(project(":compiler:backend.jvm")) + compileOnly(project(":compiler:ir.tree")) + compileOnly(project(":js:js.frontend")) + compileOnly(project(":js:js.translator")) + compileOnly(project(":kotlin-util-klib-metadata")) + compileOnly(project(":compiler:cli-common")) + + implementation(project(":kotlinx-serialization-compiler-plugin.common")) + implementation(project(":kotlinx-serialization-compiler-plugin.k1")) + + compileOnly(intellijCore()) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +sourcesJar() +javadocJar() diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt similarity index 94% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt index a6344f077e2..b4d22d2566a 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCodegen.kt @@ -30,7 +30,7 @@ abstract class SerializableCodegen( private fun generateSyntheticInternalConstructor() { val serializerDescriptor = serializableDescriptor.classSerializer ?: return - if (serializableDescriptor.shouldHaveSpecificSyntheticMethods { SerializerCodegen.getSyntheticLoadMember(serializerDescriptor) }) { + if (serializableDescriptor.shouldHaveSpecificSyntheticMethods { SerializationDescriptorUtils.getSyntheticLoadMember(serializerDescriptor) }) { val constrDesc = serializableDescriptor.secondaryConstructors.find(ClassConstructorDescriptor::isSerializationCtor) ?: return generateInternalConstructor(constrDesc) } @@ -38,7 +38,7 @@ abstract class SerializableCodegen( private fun generateSyntheticMethods() { val serializerDescriptor = serializableDescriptor.classSerializer ?: return - if (serializableDescriptor.shouldHaveSpecificSyntheticMethods { SerializerCodegen.getSyntheticSaveMember(serializerDescriptor) }) { + if (serializableDescriptor.shouldHaveSpecificSyntheticMethods { SerializationDescriptorUtils.getSyntheticSaveMember(serializerDescriptor) }) { val func = serializableDescriptor.unsubstitutedMemberScope.getContributedFunctions( Name.identifier(SerialEntityNames.WRITE_SELF_NAME.toString()), diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCompanionCodegen.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCompanionCodegen.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCompanionCodegen.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializableCompanionCodegen.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt similarity index 91% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt index bd9f278b32a..2d096af5a87 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/SerializerCodegen.kt @@ -11,6 +11,8 @@ import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.ir.declarations.IrProperty import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlinx.serialization.compiler.backend.common.SerializationDescriptorUtils.getSyntheticLoadMember +import org.jetbrains.kotlinx.serialization.compiler.backend.common.SerializationDescriptorUtils.getSyntheticSaveMember import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationDescriptorSerializerPlugin import org.jetbrains.kotlinx.serialization.compiler.resolve.* @@ -143,16 +145,4 @@ abstract class SerializerCodegen( property.returnType != null && isReturnTypeOk(property) } - - companion object { - fun getSyntheticLoadMember(serializerDescriptor: ClassDescriptor): FunctionDescriptor? = getMemberToGenerate( - serializerDescriptor, SerialEntityNames.LOAD, - serializerDescriptor::checkLoadMethodResult, serializerDescriptor::checkLoadMethodParameters - ) - - fun getSyntheticSaveMember(serializerDescriptor: ClassDescriptor): FunctionDescriptor? = getMemberToGenerate( - serializerDescriptor, SerialEntityNames.SAVE, - serializerDescriptor::checkSaveMethodResult, serializerDescriptor::checkSaveMethodParameters - ) - } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/BaseIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/BaseIrGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/BaseIrGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/BaseIrGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/DefaultValuesUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/DefaultValuesUtils.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/DefaultValuesUtils.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/DefaultValuesUtils.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/Fir2IrGeneratorUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/Fir2IrGeneratorUtils.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/Fir2IrGeneratorUtils.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/Fir2IrGeneratorUtils.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrBuilderWithPluginContext.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrBuilderWithPluginContext.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrBuilderWithPluginContext.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrBuilderWithPluginContext.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPreGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPreGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPreGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPreGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrPredicates.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrSerializableProperties.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrSerializableProperties.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrSerializableProperties.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/IrSerializableProperties.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerialInfoImplJvmIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerialInfoImplJvmIrGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerialInfoImplJvmIrGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerialInfoImplJvmIrGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableCompanionIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableCompanionIrGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableCompanionIrGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableCompanionIrGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableIrGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableIrGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializableIrGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForEnumsGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForEnumsGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForEnumsGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForEnumsGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForInlineClassGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForInlineClassGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForInlineClassGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerForInlineClassGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerIrGenerator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerSearchUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerSearchUtil.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerSearchUtil.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/SerializerSearchUtil.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableCompanionJsTranslator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableCompanionJsTranslator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableCompanionJsTranslator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableCompanionJsTranslator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableJsTranslator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableJsTranslator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableJsTranslator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializableJsTranslator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerForEnumsTranslator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerForEnumsTranslator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerForEnumsTranslator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerForEnumsTranslator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerJsTranslator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerJsTranslator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerJsTranslator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/SerializerJsTranslator.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt similarity index 98% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt index 801c82df8df..d864bf8124e 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/JVMCodegenUtil.kt @@ -181,15 +181,6 @@ internal fun ImplementationBodyCodegen.generateMethod( }) } - -internal val enumSerializerId = ClassId(internalPackageFqName, Name.identifier(SpecialBuiltins.enumSerializer)) -internal val polymorphicSerializerId = ClassId(packageFqName, Name.identifier(SpecialBuiltins.polymorphicSerializer)) -internal val referenceArraySerializerId = ClassId(internalPackageFqName, Name.identifier(SpecialBuiltins.referenceArraySerializer)) -internal val objectSerializerId = ClassId(internalPackageFqName, Name.identifier(SpecialBuiltins.objectSerializer)) -internal val sealedSerializerId = ClassId(packageFqName, Name.identifier(SpecialBuiltins.sealedSerializer)) -internal val contextSerializerId = ClassId(packageFqName, Name.identifier(SpecialBuiltins.contextSerializer)) - - internal fun InstructionAdapter.stackValueSerializerInstanceFromClass( expressionCodegen: ExpressionCodegen, classCodegen: ClassBodyCodegen, diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerialInfoCodegenImpl.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerialInfoCodegenImpl.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerialInfoCodegenImpl.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerialInfoCodegenImpl.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCodegenImpl.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCodegenImpl.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCodegenImpl.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCodegenImpl.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCompanionCodegenImpl.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCompanionCodegenImpl.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCompanionCodegenImpl.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializableCompanionCodegenImpl.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerCodegenImpl.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerCodegenImpl.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerCodegenImpl.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerCodegenImpl.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerForEnumsCodegen.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerForEnumsCodegen.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerForEnumsCodegen.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializerForEnumsCodegen.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/Types.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/Types.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/Types.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/Types.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationCodegenExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationCodegenExtension.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationCodegenExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationCodegenExtension.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationJsExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationJsExtension.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationJsExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationJsExtension.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationLoweringExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationLoweringExtension.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationLoweringExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.backend/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationLoweringExtension.kt diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.cli/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.cli/build.gradle.kts new file mode 100644 index 00000000000..f6151c0de48 --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.cli/build.gradle.kts @@ -0,0 +1,31 @@ +description = "Kotlin Serialization Compiler Plugin (CLI)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:util")) + compileOnly(project(":compiler:cli")) + compileOnly(project(":compiler:plugin-api")) + compileOnly(project(":compiler:fir:entrypoint")) + + implementation(project(":kotlinx-serialization-compiler-plugin.common")) + implementation(project(":kotlinx-serialization-compiler-plugin.k1")) + implementation(project(":kotlinx-serialization-compiler-plugin.k2")) + implementation(project(":kotlinx-serialization-compiler-plugin.backend")) + + compileOnly(intellijCore()) +} + +optInToExperimentalCompilerApi() + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +sourcesJar() +javadocJar() diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar b/plugins/kotlinx-serialization/kotlinx-serialization.cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar rename to plugins/kotlinx-serialization/kotlinx-serialization.cli/resources/META-INF/services/org.jetbrains.kotlin.compiler.plugin.CompilerPluginRegistrar diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationComponentRegistrar.kt b/plugins/kotlinx-serialization/kotlinx-serialization.cli/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationComponentRegistrar.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationComponentRegistrar.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.cli/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationComponentRegistrar.kt diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.common/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.common/build.gradle.kts new file mode 100644 index 00000000000..fbfa0287d38 --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.common/build.gradle.kts @@ -0,0 +1,21 @@ +description = "Kotlin Serialization Compiler Plugin (Common)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:util")) + compileOnly(project(":core:compiler.common")) + compileOnly(intellijCore()) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +sourcesJar() +javadocJar() diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationPluginKey.kt b/plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationPluginKey.kt new file mode 100644 index 00000000000..7458d2dd311 --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationPluginKey.kt @@ -0,0 +1,14 @@ +/* + * Copyright 2010-2022 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.kotlinx.serialization.compiler.fir + +import org.jetbrains.kotlin.GeneratedDeclarationKey + +object SerializationPluginKey : GeneratedDeclarationKey() { + override fun toString(): String { + return "KotlinxSerializationPlugin" + } +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt b/plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt similarity index 77% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt index a23c64702c2..a21bb740c09 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.common/src/org/jetbrains/kotlinx/serialization/compiler/resolve/NamingConventions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -11,11 +11,11 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name object SerializationPackages { - internal val packageFqName = FqName("kotlinx.serialization") - internal val internalPackageFqName = FqName("kotlinx.serialization.internal") - internal val encodingPackageFqName = FqName("kotlinx.serialization.encoding") - internal val descriptorsPackageFqName = FqName("kotlinx.serialization.descriptors") - internal val builtinsPackageFqName = FqName("kotlinx.serialization.builtins") + val packageFqName = FqName("kotlinx.serialization") + val internalPackageFqName = FqName("kotlinx.serialization.internal") + val encodingPackageFqName = FqName("kotlinx.serialization.encoding") + val descriptorsPackageFqName = FqName("kotlinx.serialization.descriptors") + val builtinsPackageFqName = FqName("kotlinx.serialization.builtins") val allPublicPackages = listOf(packageFqName, encodingPackageFqName, descriptorsPackageFqName, builtinsPackageFqName) } @@ -27,20 +27,20 @@ object SerializationAnnotations { // Otherwise, there it might lead to exceptions from light classes when building them for serializer/serializable classes val serializableAnnotationFqName = FqName("kotlinx.serialization.Serializable") val serializerAnnotationFqName = FqName("kotlinx.serialization.Serializer") - internal val serialNameAnnotationFqName = FqName("kotlinx.serialization.SerialName") - internal val requiredAnnotationFqName = FqName("kotlinx.serialization.Required") + val serialNameAnnotationFqName = FqName("kotlinx.serialization.SerialName") + val requiredAnnotationFqName = FqName("kotlinx.serialization.Required") val serialTransientFqName = FqName("kotlinx.serialization.Transient") // Also implicitly used in kotlin-native.compiler.backend.native/CodeGenerationInfo.kt - internal val serialInfoFqName = FqName("kotlinx.serialization.SerialInfo") - internal val inheritableSerialInfoFqName = FqName("kotlinx.serialization.InheritableSerialInfo") - internal val metaSerializableAnnotationFqName = FqName("kotlinx.serialization.MetaSerializable") - internal val encodeDefaultFqName = FqName("kotlinx.serialization.EncodeDefault") + val serialInfoFqName = FqName("kotlinx.serialization.SerialInfo") + val inheritableSerialInfoFqName = FqName("kotlinx.serialization.InheritableSerialInfo") + val metaSerializableAnnotationFqName = FqName("kotlinx.serialization.MetaSerializable") + val encodeDefaultFqName = FqName("kotlinx.serialization.EncodeDefault") - internal val contextualFqName = FqName("kotlinx.serialization.ContextualSerialization") // this one is deprecated - internal val contextualOnFileFqName = FqName("kotlinx.serialization.UseContextualSerialization") - internal val contextualOnPropertyFqName = FqName("kotlinx.serialization.Contextual") - internal val polymorphicFqName = FqName("kotlinx.serialization.Polymorphic") - internal val additionalSerializersFqName = FqName("kotlinx.serialization.UseSerializers") + val contextualFqName = FqName("kotlinx.serialization.ContextualSerialization") // this one is deprecated + val contextualOnFileFqName = FqName("kotlinx.serialization.UseContextualSerialization") + val contextualOnPropertyFqName = FqName("kotlinx.serialization.Contextual") + val polymorphicFqName = FqName("kotlinx.serialization.Polymorphic") + val additionalSerializersFqName = FqName("kotlinx.serialization.UseSerializers") } object SerialEntityNames { @@ -109,10 +109,10 @@ object SerialEntityNames { // parameters val dummyParamName = Name.identifier("serializationConstructorMarker") - internal const val typeArgPrefix = "typeSerial" + const val typeArgPrefix = "typeSerial" - internal val wrapIntoNullableExt = SerializationPackages.builtinsPackageFqName.child(Name.identifier("nullable")) - internal val wrapIntoNullableCallableId = CallableId(SerializationPackages.builtinsPackageFqName, Name.identifier("nullable")) + val wrapIntoNullableExt = SerializationPackages.builtinsPackageFqName.child(Name.identifier("nullable")) + val wrapIntoNullableCallableId = CallableId(SerializationPackages.builtinsPackageFqName, Name.identifier("nullable")) } object SpecialBuiltins { @@ -146,7 +146,7 @@ object CallingConventions { const val addClassAnnotation = "pushClassAnnotation" } -internal object SerializationDependencies { +object SerializationDependencies { val LAZY_FQ = FqName("kotlin.Lazy") val LAZY_FUNC_FQ = FqName("kotlin.lazy") val LAZY_MODE_FQ = FqName("kotlin.LazyThreadSafetyMode") diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k1/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.k1/build.gradle.kts new file mode 100644 index 00000000000..d85915e426d --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/build.gradle.kts @@ -0,0 +1,28 @@ +description = "Kotlin Serialization Compiler Plugin (K1)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":core:compiler.common.jvm")) + compileOnly(project(":compiler:frontend")) + compileOnly(project(":js:js.frontend")) + compileOnly(project(":compiler:cli-common")) + compileOnly(project(":compiler:ir.backend.common")) // needed for CompilationException + compileOnly(project(":core:deserialization.common.jvm")) // needed for CompilationException + + implementation(project(":kotlinx-serialization-compiler-plugin.common")) + + compileOnly(intellijCore()) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +sourcesJar() +javadocJar() diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/class_extensions.proto b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/class_extensions.proto similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/class_extensions.proto rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/class_extensions.proto diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/AbstractSerialGenerator.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/AbstractSerialGenerator.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/AbstractSerialGenerator.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/AbstractSerialGenerator.kt diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/DescriptorUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/DescriptorUtils.kt new file mode 100644 index 00000000000..c094d66bd0f --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/DescriptorUtils.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2022 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.kotlinx.serialization.compiler.backend.common + +import org.jetbrains.kotlin.backend.common.CodegenUtil +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.FunctionDescriptor +import org.jetbrains.kotlinx.serialization.compiler.resolve.* + +object SerializationDescriptorUtils { + fun getSyntheticLoadMember(serializerDescriptor: ClassDescriptor): FunctionDescriptor? = CodegenUtil.getMemberToGenerate( + serializerDescriptor, SerialEntityNames.LOAD, + serializerDescriptor::checkLoadMethodResult, serializerDescriptor::checkLoadMethodParameters + ) + + fun getSyntheticSaveMember(serializerDescriptor: ClassDescriptor): FunctionDescriptor? = CodegenUtil.getMemberToGenerate( + serializerDescriptor, SerialEntityNames.SAVE, + serializerDescriptor::checkSaveMethodResult, serializerDescriptor::checkSaveMethodParameters + ) +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt similarity index 96% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt index fea279e83ee..945c51eaebc 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/common/TypeUtil.kt @@ -1,13 +1,13 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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.kotlinx.serialization.compiler.backend.common import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.backend.common.CompilationException import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.codegen.CompilationException import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotations import org.jetbrains.kotlin.js.descriptorUtils.getJetTypeFqName @@ -101,7 +101,7 @@ fun ClassDescriptor.serialName(): String { return annotations.serialNameValue ?: fqNameUnsafe.asString() } -internal val ClassDescriptor.isStaticSerializable: Boolean get() = this.declaredTypeParameters.isEmpty() +val ClassDescriptor.isStaticSerializable: Boolean get() = this.declaredTypeParameters.isEmpty() /** * Returns class descriptor for ContextSerializer or PolymorphicSerializer @@ -244,7 +244,7 @@ fun findEnumTypeSerializer(module: ModuleDescriptor, kType: KotlinType): ClassDe else null } -internal fun KtPureClassOrObject.bodyPropertiesDescriptorsMap( +fun KtPureClassOrObject.bodyPropertiesDescriptorsMap( bindingContext: BindingContext, filterUninitialized: Boolean = true ): Map = declarations @@ -254,13 +254,13 @@ internal fun KtPureClassOrObject.bodyPropertiesDescriptorsMap( .filter { if (filterUninitialized) it.delegateExpressionOrInitializer != null else true } .associateBy { (bindingContext[BindingContext.DECLARATION_TO_DESCRIPTOR, it] as? PropertyDescriptor)!! } -internal fun KtPureClassOrObject.primaryConstructorPropertiesDescriptorsMap(bindingContext: BindingContext): Map = +fun KtPureClassOrObject.primaryConstructorPropertiesDescriptorsMap(bindingContext: BindingContext): Map = primaryConstructorParameters .asSequence() .filter { it.hasValOrVar() } .associateBy { bindingContext[BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, it]!! } -internal fun KtPureClassOrObject.anonymousInitializers() = declarations +fun KtPureClassOrObject.anonymousInitializers() = declarations .asSequence() .filterIsInstance() .mapNotNull { it.body } diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializationJvmNames.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializationJvmNames.kt new file mode 100644 index 00000000000..de79b28f79d --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/backend/jvm/SerializationJvmNames.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2010-2022 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.kotlinx.serialization.compiler.backend.jvm + +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationPackages +import org.jetbrains.kotlinx.serialization.compiler.resolve.SpecialBuiltins + +val enumSerializerId = ClassId(SerializationPackages.internalPackageFqName, Name.identifier(SpecialBuiltins.enumSerializer)) +val polymorphicSerializerId = ClassId(SerializationPackages.packageFqName, Name.identifier(SpecialBuiltins.polymorphicSerializer)) +val referenceArraySerializerId = ClassId(SerializationPackages.internalPackageFqName, Name.identifier(SpecialBuiltins.referenceArraySerializer)) +val objectSerializerId = ClassId(SerializationPackages.internalPackageFqName, Name.identifier(SpecialBuiltins.objectSerializer)) +val sealedSerializerId = ClassId(SerializationPackages.packageFqName, Name.identifier(SpecialBuiltins.sealedSerializer)) +val contextSerializerId = ClassId(SerializationPackages.packageFqName, Name.identifier(SpecialBuiltins.contextSerializer)) diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java similarity index 98% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java index 6f2280bc69b..6e777b20eb5 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationErrors.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt similarity index 98% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt index 71ffd34628d..719e9cf541f 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginDeclarationChecker.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -32,7 +32,7 @@ import org.jetbrains.kotlinx.serialization.compiler.backend.common.bodyPropertie import org.jetbrains.kotlinx.serialization.compiler.backend.common.primaryConstructorPropertiesDescriptorsMap import org.jetbrains.kotlinx.serialization.compiler.resolve.* -internal val SERIALIZABLE_PROPERTIES: WritableSlice = Slices.createSimpleSlice() +val SERIALIZABLE_PROPERTIES: WritableSlice = Slices.createSimpleSlice() open class SerializationPluginDeclarationChecker : DeclarationChecker { private var useLegacyEnumSerializerCached: Boolean? = null @@ -476,5 +476,5 @@ open class SerializationPluginDeclarationChecker : DeclarationChecker { } } -internal val ClassDescriptor.serializableAnnotationIsUseless: Boolean +val ClassDescriptor.serializableAnnotationIsUseless: Boolean get() = hasSerializableOrMetaAnnotationWithoutArgs && !isInternalSerializable && !hasCompanionObjectAsSerializer && kind != ClassKind.ENUM_CLASS && !isSealedSerializableInterface diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginErrorsRendering.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginErrorsRendering.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginErrorsRendering.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/SerializationPluginErrorsRendering.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/VersionReader.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/VersionReader.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/VersionReader.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/diagnostic/VersionReader.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationDescriptorSerializerPlugin.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationDescriptorSerializerPlugin.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationDescriptorSerializerPlugin.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationDescriptorSerializerPlugin.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationPluginMetadataExtensions.java b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationPluginMetadataExtensions.java similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationPluginMetadataExtensions.java rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationPluginMetadataExtensions.java diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt similarity index 97% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt index 13a2c6d21db..f4c6966e024 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/extensions/SerializationResolveExtension.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.resolve.isInlineClass import org.jetbrains.kotlin.resolve.lazy.LazyClassContext import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider import org.jetbrains.kotlin.types.KotlinType -import org.jetbrains.kotlinx.serialization.compiler.backend.common.SerializerCodegen +import org.jetbrains.kotlinx.serialization.compiler.backend.common.SerializationDescriptorUtils import org.jetbrains.kotlinx.serialization.compiler.resolve.* open class SerializationResolveExtension @JvmOverloads constructor(val metadataPlugin: SerializationDescriptorSerializerPlugin? = null) : SyntheticResolveExtension { @@ -100,7 +100,7 @@ open class SerializationResolveExtension @JvmOverloads constructor(val metadataP ) { if (thisDescriptor.isInternalSerializable) { // do not add synthetic deserialization constructor if .deserialize method is customized - if (thisDescriptor.hasCompanionObjectAsSerializer && SerializerCodegen.getSyntheticLoadMember(thisDescriptor.companionObjectDescriptor!!) == null) return + if (thisDescriptor.hasCompanionObjectAsSerializer && SerializationDescriptorUtils.getSyntheticLoadMember(thisDescriptor.companionObjectDescriptor!!) == null) return if (thisDescriptor.isInlineClass()) return result.add(KSerializerDescriptorResolver.createLoadConstructorDescriptor(thisDescriptor, bindingContext, metadataPlugin)) } @@ -128,4 +128,4 @@ open class SerializationResolveExtension @JvmOverloads constructor(val metadataP KSerializerDescriptorResolver.generateDescriptorsForAnnotationImpl(thisDescriptor, fromSupertypes, result) KSerializerDescriptorResolver.generateSerializerProperties(thisDescriptor, fromSupertypes, name, result) } -} \ No newline at end of file +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt similarity index 76% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt index 3c065bfd6a2..b020cb8ed92 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializationUtil.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -30,7 +30,7 @@ import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotat import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations.serialInfoFqName import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations.serializableAnnotationFqName -internal fun isAllowedToHaveAutoGeneratedSerializerMethods( +fun isAllowedToHaveAutoGeneratedSerializerMethods( classDescriptor: ClassDescriptor, serializableClassDescriptor: ClassDescriptor ): Boolean { @@ -43,16 +43,16 @@ internal fun isAllowedToHaveAutoGeneratedSerializerMethods( (classDescriptor.typeConstructor.supertypes.any(::isKSerializer) && classDescriptor.declaredTypeParameters.isEmpty()) } -internal fun isKSerializer(type: KotlinType?): Boolean = +fun isKSerializer(type: KotlinType?): Boolean = type != null && KotlinBuiltIns.isConstructedFromGivenClass(type, SerialEntityNames.KSERIALIZER_NAME_FQ) -internal fun isGeneratedKSerializer(type: KotlinType?): Boolean = +fun isGeneratedKSerializer(type: KotlinType?): Boolean = type != null && KotlinBuiltIns.isConstructedFromGivenClass(type, SerialEntityNames.GENERATED_SERIALIZER_FQ) -internal fun ClassDescriptor.getGeneratedSerializerDescriptor(): ClassDescriptor = +fun ClassDescriptor.getGeneratedSerializerDescriptor(): ClassDescriptor = module.getClassFromInternalSerializationPackage(SerialEntityNames.GENERATED_SERIALIZER_CLASS.identifier) -internal fun ClassDescriptor.createSerializerTypeFor(argument: SimpleType, baseSerializerInterface: FqName): SimpleType { +fun ClassDescriptor.createSerializerTypeFor(argument: SimpleType, baseSerializerInterface: FqName): SimpleType { val projectionType = Variance.INVARIANT val types = listOf(TypeProjectionImpl(projectionType, argument)) val descriptor = module.findClassAcrossModuleDependencies(ClassId.topLevel(baseSerializerInterface)) @@ -60,7 +60,7 @@ internal fun ClassDescriptor.createSerializerTypeFor(argument: SimpleType, baseS return KotlinTypeFactory.simpleNotNullType(TypeAttributes.Empty, descriptor, types) } -internal fun extractKSerializerArgumentFromImplementation(implementationClass: ClassDescriptor): KotlinType? { +fun extractKSerializerArgumentFromImplementation(implementationClass: ClassDescriptor): KotlinType? { val supertypes = implementationClass.typeConstructor.supertypes val kSerializerSupertype = supertypes.find { isGeneratedKSerializer(it) } ?: supertypes.find { isKSerializer(it) } @@ -68,33 +68,33 @@ internal fun extractKSerializerArgumentFromImplementation(implementationClass: C return kSerializerSupertype.arguments.first().type } -internal val DeclarationDescriptor.serializableWith: KotlinType? +val DeclarationDescriptor.serializableWith: KotlinType? get() = annotations.serializableWith(module) -internal fun Annotations.serializableWith(module: ModuleDescriptor): KotlinType? = +fun Annotations.serializableWith(module: ModuleDescriptor): KotlinType? = this.findAnnotationKotlinTypeValue(serializableAnnotationFqName, module, "with") -internal val DeclarationDescriptor.serializerForClass: KotlinType? +val DeclarationDescriptor.serializerForClass: KotlinType? get() = annotations.findAnnotationKotlinTypeValue(SerializationAnnotations.serializerAnnotationFqName, module, "forClass") -internal val ClassDescriptor.isSerialInfoAnnotation: Boolean +val ClassDescriptor.isSerialInfoAnnotation: Boolean get() = annotations.hasAnnotation(serialInfoFqName) || annotations.hasAnnotation(inheritableSerialInfoFqName) || annotations.hasAnnotation(metaSerializableAnnotationFqName) -internal val ClassDescriptor.isInheritableSerialInfoAnnotation: Boolean +val ClassDescriptor.isInheritableSerialInfoAnnotation: Boolean get() = annotations.hasAnnotation(inheritableSerialInfoFqName) -internal val Annotations.serialNameValue: String? +val Annotations.serialNameValue: String? get() = findAnnotationConstantValue(SerializationAnnotations.serialNameAnnotationFqName, "value") -internal val Annotations.serialNameAnnotation: AnnotationDescriptor? +val Annotations.serialNameAnnotation: AnnotationDescriptor? get() = findAnnotation(SerializationAnnotations.serialNameAnnotationFqName) -internal val Annotations.serialRequired: Boolean +val Annotations.serialRequired: Boolean get() = hasAnnotation(SerializationAnnotations.requiredAnnotationFqName) -internal val Annotations.serialTransient: Boolean +val Annotations.serialTransient: Boolean get() = hasAnnotation(SerializationAnnotations.serialTransientFqName) // ---------------------------------------- @@ -109,42 +109,42 @@ val KotlinType?.toClassDescriptor: ClassDescriptor? } } -internal val ClassDescriptor.shouldHaveGeneratedMethodsInCompanion: Boolean +val ClassDescriptor.shouldHaveGeneratedMethodsInCompanion: Boolean get() = this.isSerializableObject || this.isSerializableEnum() || (this.kind == ClassKind.CLASS && hasSerializableOrMetaAnnotation) || this.isSealedSerializableInterface -internal val ClassDescriptor.isSerializableObject: Boolean +val ClassDescriptor.isSerializableObject: Boolean get() = kind == ClassKind.OBJECT && hasSerializableOrMetaAnnotation -internal val ClassDescriptor.isInternallySerializableObject: Boolean +val ClassDescriptor.isInternallySerializableObject: Boolean get() = kind == ClassKind.OBJECT && hasSerializableOrMetaAnnotationWithoutArgs -internal val ClassDescriptor.isSealedSerializableInterface: Boolean +val ClassDescriptor.isSealedSerializableInterface: Boolean get() = kind == ClassKind.INTERFACE && modality == Modality.SEALED && hasSerializableOrMetaAnnotation -internal val ClassDescriptor.isInternalSerializable: Boolean //todo normal checking +val ClassDescriptor.isInternalSerializable: Boolean //todo normal checking get() { if (kind != ClassKind.CLASS) return false return hasSerializableOrMetaAnnotationWithoutArgs } -internal fun ClassDescriptor.isSerializableEnum(): Boolean = kind == ClassKind.ENUM_CLASS && hasSerializableOrMetaAnnotation +fun ClassDescriptor.isSerializableEnum(): Boolean = kind == ClassKind.ENUM_CLASS && hasSerializableOrMetaAnnotation -internal fun ClassDescriptor.isEnumWithLegacyGeneratedSerializer(): Boolean = isInternallySerializableEnum() && useGeneratedEnumSerializer +fun ClassDescriptor.isEnumWithLegacyGeneratedSerializer(): Boolean = isInternallySerializableEnum() && useGeneratedEnumSerializer -internal fun ClassDescriptor.isInternallySerializableEnum(): Boolean = +fun ClassDescriptor.isInternallySerializableEnum(): Boolean = kind == ClassKind.ENUM_CLASS && hasSerializableOrMetaAnnotationWithoutArgs -internal val ClassDescriptor.shouldHaveGeneratedSerializer: Boolean +val ClassDescriptor.shouldHaveGeneratedSerializer: Boolean get() = (isInternalSerializable && (modality == Modality.FINAL || modality == Modality.OPEN)) || isEnumWithLegacyGeneratedSerializer() -internal val ClassDescriptor.useGeneratedEnumSerializer: Boolean +val ClassDescriptor.useGeneratedEnumSerializer: Boolean get() { val functions = module.getPackage(SerializationPackages.internalPackageFqName).memberScope.getFunctionNames() return !functions.contains(ENUM_SERIALIZER_FACTORY_FUNC_NAME) || !functions.contains(MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME) } -internal fun ClassDescriptor.enumEntries(): List { +fun ClassDescriptor.enumEntries(): List { check(this.kind == ClassKind.ENUM_CLASS) return unsubstitutedMemberScope.getContributedDescriptors().asSequence() .filterIsInstance() @@ -153,16 +153,16 @@ internal fun ClassDescriptor.enumEntries(): List { } // check enum or its elements has any SerialInfo annotation -internal fun ClassDescriptor.isEnumWithSerialInfoAnnotation(): Boolean { +fun ClassDescriptor.isEnumWithSerialInfoAnnotation(): Boolean { if (kind != ClassKind.ENUM_CLASS) return false if (annotations.hasAnySerialAnnotation) return true return enumEntries().any { (it.annotations.hasAnySerialAnnotation) } } -internal val Annotations.hasAnySerialAnnotation: Boolean +val Annotations.hasAnySerialAnnotation: Boolean get() = serialNameValue != null || any { it.annotationClass?.isSerialInfoAnnotation == true } -internal val ClassDescriptor.hasSerializableOrMetaAnnotation +val ClassDescriptor.hasSerializableOrMetaAnnotation get() = hasSerializableAnnotation || hasMetaSerializableAnnotation private val ClassDescriptor.hasSerializableAnnotation @@ -171,13 +171,13 @@ private val ClassDescriptor.hasSerializableAnnotation private val Annotations.hasSerializableAnnotation get() = hasAnnotation(serializableAnnotationFqName) -internal val ClassDescriptor.hasMetaSerializableAnnotation: Boolean +val ClassDescriptor.hasMetaSerializableAnnotation: Boolean get() = annotations.any { it.isMetaSerializableAnnotation } -internal val AnnotationDescriptor.isMetaSerializableAnnotation: Boolean +val AnnotationDescriptor.isMetaSerializableAnnotation: Boolean get() = annotationClass?.annotations?.hasAnnotation(metaSerializableAnnotationFqName) ?: false -internal val ClassDescriptor.hasSerializableOrMetaAnnotationWithoutArgs: Boolean +val ClassDescriptor.hasSerializableOrMetaAnnotationWithoutArgs: Boolean get() = hasSerializableAnnotationWithoutArgs || (!annotations.hasSerializableAnnotation && hasMetaSerializableAnnotation) @@ -195,13 +195,13 @@ private fun Annotated.findSerializableAnnotationDeclaration(): KtAnnotationEntry return lazyDesc?.annotationEntry } -internal fun Annotated.findSerializableOrMetaAnnotationDeclaration(): KtAnnotationEntry? { +fun Annotated.findSerializableOrMetaAnnotationDeclaration(): KtAnnotationEntry? { val lazyDesc = (annotations.findAnnotation(serializableAnnotationFqName) ?: annotations.firstOrNull { it.isMetaSerializableAnnotation }) as? LazyAnnotationDescriptor return lazyDesc?.annotationEntry } -internal fun Annotated.findAnnotationDeclaration(fqName: FqName): KtAnnotationEntry? { +fun Annotated.findAnnotationDeclaration(fqName: FqName): KtAnnotationEntry? { val lazyDesc = annotations.findAnnotation(fqName) as? LazyAnnotationDescriptor return lazyDesc?.annotationEntry } @@ -209,10 +209,10 @@ internal fun Annotated.findAnnotationDeclaration(fqName: FqName): KtAnnotationEn // For abstract classes marked with @Serializable, // methods are generated anyway, although they shouldn't have // generated $serializer and use Polymorphic one. -internal fun ClassDescriptor.isAbstractOrSealedSerializableClass(): Boolean = +fun ClassDescriptor.isAbstractOrSealedSerializableClass(): Boolean = isInternalSerializable && (modality == Modality.ABSTRACT || modality == Modality.SEALED) -internal fun ClassDescriptor.polymorphicSerializerIfApplicableAutomatically(): ClassDescriptor? { +fun ClassDescriptor.polymorphicSerializerIfApplicableAutomatically(): ClassDescriptor? { val serializer = when { kind == ClassKind.INTERFACE && modality == Modality.SEALED -> SpecialBuiltins.sealedSerializer kind == ClassKind.INTERFACE -> SpecialBuiltins.polymorphicSerializer @@ -224,7 +224,7 @@ internal fun ClassDescriptor.polymorphicSerializerIfApplicableAutomatically(): C } // serializer that was declared for this type -internal val ClassDescriptor?.classSerializer: ClassDescriptor? +val ClassDescriptor?.classSerializer: ClassDescriptor? get() = this?.let { // serializer annotation on class? serializableWith?.let { return it.toClassDescriptor } @@ -242,21 +242,21 @@ internal val ClassDescriptor?.classSerializer: ClassDescriptor? return null } -internal val ClassDescriptor.hasCompanionObjectAsSerializer: Boolean +val ClassDescriptor.hasCompanionObjectAsSerializer: Boolean get() = isInternallySerializableObject || companionObjectDescriptor?.serializerForClass == this.defaultType // returns only user-overriden Serializer -internal val KotlinType.overridenSerializer: KotlinType? +val KotlinType.overridenSerializer: KotlinType? get() { val desc = this.toClassDescriptor ?: return null desc.serializableWith?.let { return it } return null } -internal val KotlinType.genericIndex: Int? +val KotlinType.genericIndex: Int? get() = (this.constructor.declarationDescriptor as? TypeParameterDescriptor)?.index -internal fun getSerializableClassDescriptorByCompanion(thisDescriptor: ClassDescriptor): ClassDescriptor? { +fun getSerializableClassDescriptorByCompanion(thisDescriptor: ClassDescriptor): ClassDescriptor? { if (thisDescriptor.isSerializableObject) return thisDescriptor if (!thisDescriptor.isCompanionObject) return null val classDescriptor = (thisDescriptor.containingDeclaration as? ClassDescriptor) ?: return null @@ -264,7 +264,7 @@ internal fun getSerializableClassDescriptorByCompanion(thisDescriptor: ClassDesc return classDescriptor } -internal fun ClassDescriptor.needSerializerFactory(): Boolean { +fun ClassDescriptor.needSerializerFactory(): Boolean { if (!(this.platform?.isNative() == true || this.platform.isJs())) return false val serializableClass = getSerializableClassDescriptorByCompanion(this) ?: return false if (serializableClass.isSerializableObject) return true @@ -275,7 +275,7 @@ internal fun ClassDescriptor.needSerializerFactory(): Boolean { return true } -internal fun getSerializableClassDescriptorBySerializer(serializerDescriptor: ClassDescriptor): ClassDescriptor? { +fun getSerializableClassDescriptorBySerializer(serializerDescriptor: ClassDescriptor): ClassDescriptor? { val serializerForClass = serializerDescriptor.serializerForClass if (serializerForClass != null) return serializerForClass.toClassDescriptor if (serializerDescriptor.name !in setOf( @@ -288,19 +288,19 @@ internal fun getSerializableClassDescriptorBySerializer(serializerDescriptor: Cl return classDescriptor } -internal fun ClassDescriptor.checkSerializableClassPropertyResult(prop: PropertyDescriptor): Boolean = +fun ClassDescriptor.checkSerializableClassPropertyResult(prop: PropertyDescriptor): Boolean = prop.returnType!!.isSubtypeOf(getClassFromSerializationPackage(SerialEntityNames.SERIAL_DESCRIPTOR_CLASS).toSimpleType(false)) // todo: cache lookup // todo: serialization: do an actual check better that just number of parameters -internal fun ClassDescriptor.checkSaveMethodParameters(parameters: List): Boolean = +fun ClassDescriptor.checkSaveMethodParameters(parameters: List): Boolean = parameters.size == 2 -internal fun ClassDescriptor.checkSaveMethodResult(type: KotlinType): Boolean = +fun ClassDescriptor.checkSaveMethodResult(type: KotlinType): Boolean = KotlinBuiltIns.isUnit(type) // todo: serialization: do an actual check better that just number of parameters -internal fun ClassDescriptor.checkLoadMethodParameters(parameters: List): Boolean = +fun ClassDescriptor.checkLoadMethodParameters(parameters: List): Boolean = parameters.size == 1 -internal fun ClassDescriptor.checkLoadMethodResult(type: KotlinType): Boolean = +fun ClassDescriptor.checkLoadMethodResult(type: KotlinType): Boolean = getSerializableClassDescriptorBySerializer(this)?.defaultType == type diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/KSerializerDescriptorResolver.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt similarity index 82% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt index a536f4e76e6..a0a7a9a4afd 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SearchUtils.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinTypeFactory import org.jetbrains.kotlin.types.TypeAttributes -internal fun ClassConstructorDescriptor.isSerializationCtor(): Boolean { +fun ClassConstructorDescriptor.isSerializationCtor(): Boolean { /*kind == CallableMemberDescriptor.Kind.SYNTHESIZED does not work because DeserializedClassConstructorDescriptor loses its kind*/ return valueParameters.lastOrNull()?.run { name == SerialEntityNames.dummyParamName && type.constructor.declarationDescriptor?.classId == ClassId( @@ -33,7 +33,7 @@ internal fun ClassConstructorDescriptor.isSerializationCtor(): Boolean { } // finds constructor (KSerializer, KSerializer...) on a KSerializer> -internal fun findSerializerConstructorForTypeArgumentsSerializers( +fun findSerializerConstructorForTypeArgumentsSerializers( serializerDescriptor: ClassDescriptor, onlyIfSynthetic: Boolean = false ): ClassConstructorDescriptor? { @@ -56,7 +56,7 @@ inline fun Annotations.findAnnotationConstantValue(annotationFqName: inline fun AnnotationDescriptor.findConstantValue(property: String): R? = allValueArguments.entries.singleOrNull { it.key.asString() == property }?.value?.value as? R -internal fun Annotations.findAnnotationKotlinTypeValue( +fun Annotations.findAnnotationKotlinTypeValue( annotationFqName: FqName, moduleForResolve: ModuleDescriptor, property: String @@ -66,7 +66,7 @@ internal fun Annotations.findAnnotationKotlinTypeValue( maybeKClass?.getArgumentType(moduleForResolve) } -internal fun ClassDescriptor.getKSerializerConstructorMarker(): ClassDescriptor = +fun ClassDescriptor.getKSerializerConstructorMarker(): ClassDescriptor = module.findClassAcrossModuleDependencies( ClassId( SerializationPackages.internalPackageFqName, @@ -74,7 +74,7 @@ internal fun ClassDescriptor.getKSerializerConstructorMarker(): ClassDescriptor ) )!! -internal fun ClassDescriptor.getKSerializer(): ClassDescriptor = +fun ClassDescriptor.getKSerializer(): ClassDescriptor = module.findClassAcrossModuleDependencies( ClassId( SerializationPackages.packageFqName, @@ -82,10 +82,10 @@ internal fun ClassDescriptor.getKSerializer(): ClassDescriptor = ) )!! -internal fun getInternalPackageFqn(classSimpleName: String): FqName = +fun getInternalPackageFqn(classSimpleName: String): FqName = SerializationPackages.internalPackageFqName.child(Name.identifier(classSimpleName)) -internal fun ModuleDescriptor.getClassFromInternalSerializationPackage(classSimpleName: String) = +fun ModuleDescriptor.getClassFromInternalSerializationPackage(classSimpleName: String) = requireNotNull( findClassAcrossModuleDependencies( ClassId( @@ -95,7 +95,7 @@ internal fun ModuleDescriptor.getClassFromInternalSerializationPackage(classSimp ) ) { "Can't locate class $classSimpleName from package ${SerializationPackages.internalPackageFqName}" } -internal fun ModuleDescriptor.getClassFromSerializationDescriptorsPackage(classSimpleName: String) = +fun ModuleDescriptor.getClassFromSerializationDescriptorsPackage(classSimpleName: String) = requireNotNull( findClassAcrossModuleDependencies( ClassId( @@ -105,10 +105,10 @@ internal fun ModuleDescriptor.getClassFromSerializationDescriptorsPackage(classS ) ) { "Can't locate class $classSimpleName from package ${SerializationPackages.descriptorsPackageFqName}" } -internal fun getSerializationPackageFqn(classSimpleName: String): FqName = +fun getSerializationPackageFqn(classSimpleName: String): FqName = SerializationPackages.packageFqName.child(Name.identifier(classSimpleName)) -internal fun ModuleDescriptor.getClassFromSerializationPackage(classSimpleName: String) = +fun ModuleDescriptor.getClassFromSerializationPackage(classSimpleName: String) = SerializationPackages.allPublicPackages.firstNotNullOfOrNull { pkg -> module.findClassAcrossModuleDependencies(ClassId( pkg, @@ -116,16 +116,16 @@ internal fun ModuleDescriptor.getClassFromSerializationPackage(classSimpleName: )) } ?: throw IllegalArgumentException("Can't locate class $classSimpleName") -internal fun ClassDescriptor.getClassFromSerializationPackage(classSimpleName: String) = +fun ClassDescriptor.getClassFromSerializationPackage(classSimpleName: String) = module.getClassFromSerializationPackage(classSimpleName) -internal fun ClassDescriptor.getClassFromInternalSerializationPackage(classSimpleName: String) = +fun ClassDescriptor.getClassFromInternalSerializationPackage(classSimpleName: String) = module.getClassFromInternalSerializationPackage(classSimpleName) fun ClassDescriptor.toSimpleType(nullable: Boolean = false) = KotlinTypeFactory.simpleType(TypeAttributes.Empty, this.typeConstructor, emptyList(), nullable) -internal fun Annotated.annotationsWithArguments(): List, List>> = +fun Annotated.annotationsWithArguments(): List, List>> = annotations.asSequence() .filter { it.type.toClassDescriptor?.isSerialInfoAnnotation == true } .filterIsInstance() diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt similarity index 93% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt index 9ebd805a3ef..95fc84e6e1c 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperties.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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. */ @@ -120,7 +120,7 @@ fun PropertyDescriptor.declaresDefaultValue(): Boolean { } -internal val ISerializableProperties<*>.goldenMask: Int +val ISerializableProperties<*>.goldenMask: Int get() { var goldenMask = 0 var requiredBit = 1 @@ -133,7 +133,7 @@ internal val ISerializableProperties<*>.goldenMask: Int return goldenMask } -internal val ISerializableProperties<*>.goldenMaskList: List +val ISerializableProperties<*>.goldenMaskList: List get() { val maskSlotCount = serializableProperties.bitMaskSlotCount() val goldenMaskList = MutableList(maskSlotCount) { 0 } @@ -148,10 +148,10 @@ internal val ISerializableProperties<*>.goldenMaskList: List return goldenMaskList } -internal fun List.bitMaskSlotCount() = size / 32 + 1 -internal fun bitMaskSlotAt(propertyIndex: Int) = propertyIndex / 32 +fun List.bitMaskSlotCount() = size / 32 + 1 +fun bitMaskSlotAt(propertyIndex: Int) = propertyIndex / 32 -internal fun BindingContext.serializablePropertiesFor( +fun BindingContext.serializablePropertiesFor( classDescriptor: ClassDescriptor, serializationDescriptorSerializer: SerializationDescriptorSerializerPlugin? = null ): SerializableProperties { @@ -160,10 +160,10 @@ internal fun BindingContext.serializablePropertiesFor( return props } -internal fun restoreCorrectOrderFromClassProtoExtension(descriptor: ClassDescriptor, props: List

): List

{ +fun restoreCorrectOrderFromClassProtoExtension(descriptor: ClassDescriptor, props: List

): List

{ if (descriptor !is DeserializedClassDescriptor) return props val correctOrder: List = descriptor.classProto.getExtension(SerializationPluginMetadataExtensions.propertiesNamesInProgramOrder) .map { descriptor.c.nameResolver.getName(it) } val propsMap = props.associateBy { it.originalDescriptorName } return correctOrder.map { propsMap.getValue(it) } -} \ No newline at end of file +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k1/src/org/jetbrains/kotlinx/serialization/compiler/resolve/SerializableProperty.kt diff --git a/plugins/kotlinx-serialization/kotlinx-serialization.k2/build.gradle.kts b/plugins/kotlinx-serialization/kotlinx-serialization.k2/build.gradle.kts new file mode 100644 index 00000000000..3fc8189fd3c --- /dev/null +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/build.gradle.kts @@ -0,0 +1,26 @@ +description = "Kotlin Serialization Compiler Plugin (K2)" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + compileOnly(project(":compiler:fir:cones")) + compileOnly(project(":compiler:fir:tree")) + compileOnly(project(":compiler:fir:resolve")) + compileOnly(project(":compiler:fir:entrypoint")) + + implementation(project(":kotlinx-serialization-compiler-plugin.common")) + + compileOnly(intellijCore()) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + +runtimeJar() +sourcesJar() +javadocJar() diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt similarity index 91% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt index 3a9830415e3..8e4c8a134d3 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirBuildersUtils.kt @@ -17,18 +17,13 @@ import org.jetbrains.kotlin.fir.extensions.FirDeclarationGenerationExtension import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider -import org.jetbrains.kotlin.fir.scopes.impl.toConeType import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.impl.* -import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef -import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef -import org.jetbrains.kotlin.fir.types.constructClassLikeType import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance -import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames // FIXME KT-53096: this has to be shared (copied from plugin example) @@ -76,4 +71,4 @@ fun newSimpleValueParameter(firSession: FirSession, typeRef: FirResolvedTypeRef, isCrossinline = false isNoinline = false isVararg = false -} \ No newline at end of file +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt similarity index 87% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt index 7182d43d88c..c7a07a2ffe5 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationExtensionRegistrar.kt @@ -7,9 +7,9 @@ package org.jetbrains.kotlinx.serialization.compiler.fir import org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar -class FirSerializationExtensionRegistrar: FirExtensionRegistrar() { +class FirSerializationExtensionRegistrar : FirExtensionRegistrar() { override fun ExtensionRegistrarContext.configurePlugin() { +::SerializationFirResolveExtension +::SerializationFirSupertypesExtension } -} \ No newline at end of file +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationPredicates.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationPredicates.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationPredicates.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/FirSerializationPredicates.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt similarity index 97% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt index c1e346fe51d..d2a01ad9997 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt +++ b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirResolveExtension.kt @@ -1,17 +1,15 @@ /* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 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.kotlinx.serialization.compiler.fir -import org.jetbrains.kotlin.GeneratedDeclarationKey import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.EffectiveVisibility import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.analysis.checkers.getContainingDeclarationSymbol import org.jetbrains.kotlin.fir.copy import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.builder.* @@ -28,7 +26,6 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.impl.toConeType import org.jetbrains.kotlin.fir.symbols.SymbolInternals -import org.jetbrains.kotlin.fir.symbols.constructStarProjectedType import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef @@ -36,16 +33,9 @@ import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames -import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationPackages -object SerializationPluginKey : GeneratedDeclarationKey() { - override fun toString(): String { - return "KotlinxSerializationPlugin" - } -} - val generatedSerializerClassId = ClassId(SerializationPackages.internalPackageFqName, SerialEntityNames.GENERATED_SERIALIZER_CLASS) val kSerializerClassId = ClassId(SerializationPackages.packageFqName, SerialEntityNames.KSERIALIZER_NAME) @@ -339,4 +329,4 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene override fun FirDeclarationPredicateRegistrar.registerPredicates() { register(FirSerializationPredicates.annotatedWithSerializable) } -} \ No newline at end of file +} diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirSupertypesExtension.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirSupertypesExtension.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirSupertypesExtension.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirSupertypesExtension.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt b/plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt rename to plugins/kotlinx-serialization/kotlinx-serialization.k2/src/org/jetbrains/kotlinx/serialization/compiler/fir/SerializationFirUtils.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/annotationsOnFile.kt b/plugins/kotlinx-serialization/testData/boxIr/annotationsOnFile.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/annotationsOnFile.kt rename to plugins/kotlinx-serialization/testData/boxIr/annotationsOnFile.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/classSerializerAsObject.kt b/plugins/kotlinx-serialization/testData/boxIr/classSerializerAsObject.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/classSerializerAsObject.kt rename to plugins/kotlinx-serialization/testData/boxIr/classSerializerAsObject.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/enumsAreCached.kt b/plugins/kotlinx-serialization/testData/boxIr/enumsAreCached.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/enumsAreCached.kt rename to plugins/kotlinx-serialization/testData/boxIr/enumsAreCached.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/generics.kt b/plugins/kotlinx-serialization/testData/boxIr/generics.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/generics.kt rename to plugins/kotlinx-serialization/testData/boxIr/generics.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/inlineClasses.kt b/plugins/kotlinx-serialization/testData/boxIr/inlineClasses.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/inlineClasses.kt rename to plugins/kotlinx-serialization/testData/boxIr/inlineClasses.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/metaSerializable.kt b/plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/metaSerializable.kt rename to plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/multimoduleInheritance.kt b/plugins/kotlinx-serialization/testData/boxIr/multimoduleInheritance.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/multimoduleInheritance.kt rename to plugins/kotlinx-serialization/testData/boxIr/multimoduleInheritance.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/sealedInterfaces.kt b/plugins/kotlinx-serialization/testData/boxIr/sealedInterfaces.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/sealedInterfaces.kt rename to plugins/kotlinx-serialization/testData/boxIr/sealedInterfaces.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxWithoutRuntime/basic.kt b/plugins/kotlinx-serialization/testData/boxWithoutRuntime/basic.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxWithoutRuntime/basic.kt rename to plugins/kotlinx-serialization/testData/boxWithoutRuntime/basic.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.ir.txt b/plugins/kotlinx-serialization/testData/codegen/Basic.ir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.ir.txt rename to plugins/kotlinx-serialization/testData/codegen/Basic.ir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.kt b/plugins/kotlinx-serialization/testData/codegen/Basic.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.kt rename to plugins/kotlinx-serialization/testData/codegen/Basic.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.txt b/plugins/kotlinx-serialization/testData/codegen/Basic.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.txt rename to plugins/kotlinx-serialization/testData/codegen/Basic.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.ir.txt b/plugins/kotlinx-serialization/testData/codegen/Delegated.ir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.ir.txt rename to plugins/kotlinx-serialization/testData/codegen/Delegated.ir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.kt b/plugins/kotlinx-serialization/testData/codegen/Delegated.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.kt rename to plugins/kotlinx-serialization/testData/codegen/Delegated.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.txt b/plugins/kotlinx-serialization/testData/codegen/Delegated.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.txt rename to plugins/kotlinx-serialization/testData/codegen/Delegated.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.ir.txt b/plugins/kotlinx-serialization/testData/codegen/Sealed.ir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.ir.txt rename to plugins/kotlinx-serialization/testData/codegen/Sealed.ir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.kt b/plugins/kotlinx-serialization/testData/codegen/Sealed.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.kt rename to plugins/kotlinx-serialization/testData/codegen/Sealed.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.txt b/plugins/kotlinx-serialization/testData/codegen/Sealed.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.txt rename to plugins/kotlinx-serialization/testData/codegen/Sealed.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/DuplicateSerialName.kt b/plugins/kotlinx-serialization/testData/diagnostics/DuplicateSerialName.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/DuplicateSerialName.kt rename to plugins/kotlinx-serialization/testData/diagnostics/DuplicateSerialName.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/DuplicateSerialName.txt b/plugins/kotlinx-serialization/testData/diagnostics/DuplicateSerialName.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/DuplicateSerialName.txt rename to plugins/kotlinx-serialization/testData/diagnostics/DuplicateSerialName.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/EnumDuplicateSerialName.kt b/plugins/kotlinx-serialization/testData/diagnostics/EnumDuplicateSerialName.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/EnumDuplicateSerialName.kt rename to plugins/kotlinx-serialization/testData/diagnostics/EnumDuplicateSerialName.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ExternalSerializers.kt b/plugins/kotlinx-serialization/testData/diagnostics/ExternalSerializers.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ExternalSerializers.kt rename to plugins/kotlinx-serialization/testData/diagnostics/ExternalSerializers.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient.kt b/plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient.kt rename to plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient2.kt b/plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient2.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient2.kt rename to plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient2.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/InheritableInfo.kt b/plugins/kotlinx-serialization/testData/diagnostics/InheritableInfo.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/InheritableInfo.kt rename to plugins/kotlinx-serialization/testData/diagnostics/InheritableInfo.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LazyRecursionBug.kt b/plugins/kotlinx-serialization/testData/diagnostics/LazyRecursionBug.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LazyRecursionBug.kt rename to plugins/kotlinx-serialization/testData/diagnostics/LazyRecursionBug.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LazyRecursionBug.txt b/plugins/kotlinx-serialization/testData/diagnostics/LazyRecursionBug.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LazyRecursionBug.txt rename to plugins/kotlinx-serialization/testData/diagnostics/LazyRecursionBug.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LocalAndAnonymous.kt b/plugins/kotlinx-serialization/testData/diagnostics/LocalAndAnonymous.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LocalAndAnonymous.kt rename to plugins/kotlinx-serialization/testData/diagnostics/LocalAndAnonymous.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NoSuitableCtorInParent.kt b/plugins/kotlinx-serialization/testData/diagnostics/NoSuitableCtorInParent.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NoSuitableCtorInParent.kt rename to plugins/kotlinx-serialization/testData/diagnostics/NoSuitableCtorInParent.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NoSuitableCtorInParent.txt b/plugins/kotlinx-serialization/testData/diagnostics/NoSuitableCtorInParent.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NoSuitableCtorInParent.txt rename to plugins/kotlinx-serialization/testData/diagnostics/NoSuitableCtorInParent.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NonSerializable.kt b/plugins/kotlinx-serialization/testData/diagnostics/NonSerializable.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NonSerializable.kt rename to plugins/kotlinx-serialization/testData/diagnostics/NonSerializable.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NonSerializable.txt b/plugins/kotlinx-serialization/testData/diagnostics/NonSerializable.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NonSerializable.txt rename to plugins/kotlinx-serialization/testData/diagnostics/NonSerializable.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NullabilityIncompatible.kt b/plugins/kotlinx-serialization/testData/diagnostics/NullabilityIncompatible.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NullabilityIncompatible.kt rename to plugins/kotlinx-serialization/testData/diagnostics/NullabilityIncompatible.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NullabilityIncompatible.txt b/plugins/kotlinx-serialization/testData/diagnostics/NullabilityIncompatible.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NullabilityIncompatible.txt rename to plugins/kotlinx-serialization/testData/diagnostics/NullabilityIncompatible.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ParamIsNotProperty.kt b/plugins/kotlinx-serialization/testData/diagnostics/ParamIsNotProperty.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ParamIsNotProperty.kt rename to plugins/kotlinx-serialization/testData/diagnostics/ParamIsNotProperty.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ParamIsNotProperty.txt b/plugins/kotlinx-serialization/testData/diagnostics/ParamIsNotProperty.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ParamIsNotProperty.txt rename to plugins/kotlinx-serialization/testData/diagnostics/ParamIsNotProperty.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableEnums.kt b/plugins/kotlinx-serialization/testData/diagnostics/SerializableEnums.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableEnums.kt rename to plugins/kotlinx-serialization/testData/diagnostics/SerializableEnums.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableEnums.txt b/plugins/kotlinx-serialization/testData/diagnostics/SerializableEnums.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableEnums.txt rename to plugins/kotlinx-serialization/testData/diagnostics/SerializableEnums.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableIgnored.kt b/plugins/kotlinx-serialization/testData/diagnostics/SerializableIgnored.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableIgnored.kt rename to plugins/kotlinx-serialization/testData/diagnostics/SerializableIgnored.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt b/plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt rename to plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeIncompatible.kt b/plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeIncompatible.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeIncompatible.kt rename to plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeIncompatible.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/Transients.kt b/plugins/kotlinx-serialization/testData/diagnostics/Transients.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/Transients.kt rename to plugins/kotlinx-serialization/testData/diagnostics/Transients.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/Transients.txt b/plugins/kotlinx-serialization/testData/diagnostics/Transients.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/Transients.txt rename to plugins/kotlinx-serialization/testData/diagnostics/Transients.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.kt b/plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.kt rename to plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.kt b/plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.kt rename to plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.kt b/plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.kt rename to plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/defaultProperties.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.kt b/plugins/kotlinx-serialization/testData/firMembers/defaultProperties.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.kt rename to plugins/kotlinx-serialization/testData/firMembers/defaultProperties.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/enums.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.kt b/plugins/kotlinx-serialization/testData/firMembers/enums.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.kt rename to plugins/kotlinx-serialization/testData/firMembers/enums.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/inlineClasses.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.kt b/plugins/kotlinx-serialization/testData/firMembers/inlineClasses.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.kt rename to plugins/kotlinx-serialization/testData/firMembers/inlineClasses.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/multipleProperties.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.kt b/plugins/kotlinx-serialization/testData/firMembers/multipleProperties.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.kt rename to plugins/kotlinx-serialization/testData/firMembers/multipleProperties.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.kt b/plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.kt rename to plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.fir.txt b/plugins/kotlinx-serialization/testData/firMembers/serializableObject.fir.txt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.fir.txt rename to plugins/kotlinx-serialization/testData/firMembers/serializableObject.fir.txt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.kt b/plugins/kotlinx-serialization/testData/firMembers/serializableObject.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.kt rename to plugins/kotlinx-serialization/testData/firMembers/serializableObject.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java similarity index 60% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java index 6e142c36425..361a5cc0a20 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirBlackBoxTestGenerated.java @@ -17,65 +17,65 @@ import java.util.regex.Pattern; /** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers") +@TestMetadata("plugins/kotlinx-serialization/testData/firMembers") @TestDataPath("$PROJECT_ROOT") public class SerializationFirBlackBoxTestGenerated extends AbstractSerializationFirBlackBoxTest { @Test @TestMetadata("abstractAndSealed.kt") public void testAbstractAndSealed() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.kt"); } @Test public void testAllFilesPresentInFirMembers() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/firMembers"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } @Test @TestMetadata("classWithCompanionObject.kt") public void testClassWithCompanionObject() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.kt"); } @Test @TestMetadata("classWithGenericParameters.kt") public void testClassWithGenericParameters() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.kt"); } @Test @TestMetadata("defaultProperties.kt") public void testDefaultProperties() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/defaultProperties.kt"); } @Test @TestMetadata("enums.kt") public void testEnums() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/enums.kt"); } @Test @TestMetadata("inlineClasses.kt") public void testInlineClasses() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/inlineClasses.kt"); } @Test @TestMetadata("multipleProperties.kt") public void testMultipleProperties() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/multipleProperties.kt"); } @Test @TestMetadata("privatePropertiesSerialization.kt") public void testPrivatePropertiesSerialization() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.kt"); } @Test @TestMetadata("serializableObject.kt") public void testSerializableObject() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/serializableObject.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java similarity index 60% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java index a27577c5f81..9a23ac43d40 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationFirMembersTestGenerated.java @@ -16,65 +16,65 @@ import java.util.regex.Pattern; /** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers") +@TestMetadata("plugins/kotlinx-serialization/testData/firMembers") @TestDataPath("$PROJECT_ROOT") public class SerializationFirMembersTestGenerated extends AbstractSerializationFirMembersTest { @Test @TestMetadata("abstractAndSealed.kt") public void testAbstractAndSealed() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/abstractAndSealed.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.kt"); } @Test public void testAllFilesPresentInFirMembers() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers"), Pattern.compile("^(.+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/firMembers"), Pattern.compile("^(.+)\\.kt$"), null, true); } @Test @TestMetadata("classWithCompanionObject.kt") public void testClassWithCompanionObject() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithCompanionObject.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.kt"); } @Test @TestMetadata("classWithGenericParameters.kt") public void testClassWithGenericParameters() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/classWithGenericParameters.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.kt"); } @Test @TestMetadata("defaultProperties.kt") public void testDefaultProperties() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/defaultProperties.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/defaultProperties.kt"); } @Test @TestMetadata("enums.kt") public void testEnums() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/enums.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/enums.kt"); } @Test @TestMetadata("inlineClasses.kt") public void testInlineClasses() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/inlineClasses.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/inlineClasses.kt"); } @Test @TestMetadata("multipleProperties.kt") public void testMultipleProperties() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/multipleProperties.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/multipleProperties.kt"); } @Test @TestMetadata("privatePropertiesSerialization.kt") public void testPrivatePropertiesSerialization() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/privatePropertiesSerialization.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.kt"); } @Test @TestMetadata("serializableObject.kt") public void testSerializableObject() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/firMembers/serializableObject.kt"); + runTest("plugins/kotlinx-serialization/testData/firMembers/serializableObject.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java similarity index 61% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java index 23eaa116294..afd1890775a 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBoxTestGenerated.java @@ -17,59 +17,59 @@ import java.util.regex.Pattern; /** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr") +@TestMetadata("plugins/kotlinx-serialization/testData/boxIr") @TestDataPath("$PROJECT_ROOT") public class SerializationIrBoxTestGenerated extends AbstractSerializationIrBoxTest { @Test public void testAllFilesPresentInBoxIr() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/boxIr"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } @Test @TestMetadata("annotationsOnFile.kt") public void testAnnotationsOnFile() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/annotationsOnFile.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/annotationsOnFile.kt"); } @Test @TestMetadata("classSerializerAsObject.kt") public void testClassSerializerAsObject() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/classSerializerAsObject.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/classSerializerAsObject.kt"); } @Test @TestMetadata("enumsAreCached.kt") public void testEnumsAreCached() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/enumsAreCached.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/enumsAreCached.kt"); } @Test @TestMetadata("generics.kt") public void testGenerics() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/generics.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/generics.kt"); } @Test @TestMetadata("inlineClasses.kt") public void testInlineClasses() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/inlineClasses.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/inlineClasses.kt"); } @Test @TestMetadata("metaSerializable.kt") public void testMetaSerializable() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/metaSerializable.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt"); } @Test @TestMetadata("multimoduleInheritance.kt") public void testMultimoduleInheritance() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/multimoduleInheritance.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/multimoduleInheritance.kt"); } @Test @TestMetadata("sealedInterfaces.kt") public void testSealedInterfaces() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxIr/sealedInterfaces.kt"); + runTest("plugins/kotlinx-serialization/testData/boxIr/sealedInterfaces.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java similarity index 72% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java index 509b0d2c15f..3d4b0d4dcf0 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationIrBytecodeListingTestGenerated.java @@ -17,7 +17,7 @@ import java.util.regex.Pattern; /** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen") +@TestMetadata("plugins/kotlinx-serialization/testData/codegen") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public class SerializationIrBytecodeListingTestGenerated extends AbstractSerializationIrBytecodeListingTest { @@ -26,21 +26,21 @@ public class SerializationIrBytecodeListingTestGenerated extends AbstractSeriali } public void testAllFilesPresentInCodegen() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen"), Pattern.compile("^(.+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/codegen"), Pattern.compile("^(.+)\\.kt$"), null, true); } @TestMetadata("Basic.kt") public void testBasic() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Basic.kt"); } @TestMetadata("Delegated.kt") public void testDelegated() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Delegated.kt"); } @TestMetadata("Sealed.kt") public void testSealed() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Sealed.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java similarity index 72% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java index 2eea8e24aac..3b81a1c6d4e 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginBytecodeListingTestGenerated.java @@ -17,7 +17,7 @@ import java.util.regex.Pattern; /** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen") +@TestMetadata("plugins/kotlinx-serialization/testData/codegen") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public class SerializationPluginBytecodeListingTestGenerated extends AbstractSerializationPluginBytecodeListingTest { @@ -26,21 +26,21 @@ public class SerializationPluginBytecodeListingTestGenerated extends AbstractSer } public void testAllFilesPresentInCodegen() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen"), Pattern.compile("^(.+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/codegen"), Pattern.compile("^(.+)\\.kt$"), null, true); } @TestMetadata("Basic.kt") public void testBasic() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Basic.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Basic.kt"); } @TestMetadata("Delegated.kt") public void testDelegated() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Delegated.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Delegated.kt"); } @TestMetadata("Sealed.kt") public void testSealed() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/codegen/Sealed.kt"); + runTest("plugins/kotlinx-serialization/testData/codegen/Sealed.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java similarity index 57% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java index e1a4b11457b..0ac94fe1227 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationPluginDiagnosticTestGenerated.java @@ -17,7 +17,7 @@ import java.util.regex.Pattern; /** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics") +@TestMetadata("plugins/kotlinx-serialization/testData/diagnostics") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) public class SerializationPluginDiagnosticTestGenerated extends AbstractSerializationPluginDiagnosticTest { @@ -26,91 +26,91 @@ public class SerializationPluginDiagnosticTestGenerated extends AbstractSerializ } public void testAllFilesPresentInDiagnostics() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true); } @TestMetadata("DuplicateSerialName.kt") public void testDuplicateSerialName() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/DuplicateSerialName.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/DuplicateSerialName.kt"); } @TestMetadata("EnumDuplicateSerialName.kt") public void testEnumDuplicateSerialName() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/EnumDuplicateSerialName.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/EnumDuplicateSerialName.kt"); } @TestMetadata("ExternalSerializers.kt") public void testExternalSerializers() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ExternalSerializers.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/ExternalSerializers.kt"); } @TestMetadata("IncorrectTransient.kt") public void testIncorrectTransient() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient.kt"); } @TestMetadata("IncorrectTransient2.kt") public void testIncorrectTransient2() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/IncorrectTransient2.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/IncorrectTransient2.kt"); } @TestMetadata("InheritableInfo.kt") public void testInheritableInfo() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/InheritableInfo.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/InheritableInfo.kt"); } @TestMetadata("LazyRecursionBug.kt") public void testLazyRecursionBug() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LazyRecursionBug.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/LazyRecursionBug.kt"); } @TestMetadata("LocalAndAnonymous.kt") public void testLocalAndAnonymous() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/LocalAndAnonymous.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/LocalAndAnonymous.kt"); } @TestMetadata("NoSuitableCtorInParent.kt") public void testNoSuitableCtorInParent() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NoSuitableCtorInParent.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/NoSuitableCtorInParent.kt"); } @TestMetadata("NonSerializable.kt") public void testNonSerializable() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NonSerializable.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/NonSerializable.kt"); } @TestMetadata("NullabilityIncompatible.kt") public void testNullabilityIncompatible() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/NullabilityIncompatible.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/NullabilityIncompatible.kt"); } @TestMetadata("ParamIsNotProperty.kt") public void testParamIsNotProperty() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/ParamIsNotProperty.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/ParamIsNotProperty.kt"); } @TestMetadata("SerializableEnums.kt") public void testSerializableEnums() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableEnums.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/SerializableEnums.kt"); } @TestMetadata("SerializableIgnored.kt") public void testSerializableIgnored() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializableIgnored.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/SerializableIgnored.kt"); } @TestMetadata("SerializerTypeCompatibleForSpecials.kt") public void testSerializerTypeCompatibleForSpecials() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeCompatibleForSpecials.kt"); } @TestMetadata("SerializerTypeIncompatible.kt") public void testSerializerTypeIncompatible() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/SerializerTypeIncompatible.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/SerializerTypeIncompatible.kt"); } @TestMetadata("Transients.kt") public void testTransients() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/diagnostics/Transients.kt"); + runTest("plugins/kotlinx-serialization/testData/diagnostics/Transients.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java similarity index 73% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java rename to plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java index bde9d5cc27d..6123e1f943d 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java +++ b/plugins/kotlinx-serialization/tests-gen/org/jetbrains/kotlinx/serialization/SerializationWithoutRuntimeIrBoxTestGenerated.java @@ -17,17 +17,17 @@ import java.util.regex.Pattern; /** This class is generated by {@link GenerateNewCompilerTests.kt}. DO NOT MODIFY MANUALLY */ @SuppressWarnings("all") -@TestMetadata("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxWithoutRuntime") +@TestMetadata("plugins/kotlinx-serialization/testData/boxWithoutRuntime") @TestDataPath("$PROJECT_ROOT") public class SerializationWithoutRuntimeIrBoxTestGenerated extends AbstractSerializationWithoutRuntimeIrBoxTest { @Test public void testAllFilesPresentInBoxWithoutRuntime() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxWithoutRuntime"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/boxWithoutRuntime"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } @Test @TestMetadata("basic.kt") public void testBasic() throws Exception { - runTest("plugins/kotlin-serialization/kotlin-serialization-compiler/testData/boxWithoutRuntime/basic.kt"); + runTest("plugins/kotlinx-serialization/testData/boxWithoutRuntime/basic.kt"); } } diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationFirMembersTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationFirMembersTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationFirMembersTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationFirMembersTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBoxTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBoxTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBoxTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBoxTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBytecodeListingTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBytecodeListingTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBytecodeListingTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationIrBytecodeListingTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginBytecodeListingTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginBytecodeListingTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginBytecodeListingTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginBytecodeListingTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginDiagnosticTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginDiagnosticTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginDiagnosticTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationPluginDiagnosticTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationWithoutRuntimeIrBoxTest.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationWithoutRuntimeIrBoxTest.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/AbstractSerializationWithoutRuntimeIrBoxTest.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/AbstractSerializationWithoutRuntimeIrBoxTest.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/RuntimeSearch.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/RuntimeSearch.kt similarity index 100% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/RuntimeSearch.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/RuntimeSearch.kt diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/TestGenerator.kt b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/TestGenerator.kt similarity index 58% rename from plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/TestGenerator.kt rename to plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/TestGenerator.kt index 4a582ec9510..91d03e8ccef 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/test/org/jetbrains/kotlinx/serialization/TestGenerator.kt +++ b/plugins/kotlinx-serialization/tests/org/jetbrains/kotlinx/serialization/TestGenerator.kt @@ -6,14 +6,34 @@ package org.jetbrains.kotlinx.serialization import org.jetbrains.kotlin.generators.generateTestGroupSuiteWithJUnit5 +import org.jetbrains.kotlin.generators.impl.generateTestGroupSuite fun main(args: Array) { System.setProperty("java.awt.headless", "true") + generateTestGroupSuite { + testGroup( + "plugins/kotlinx-serialization/tests-gen", + "plugins/kotlinx-serialization/testData" + ) { + testClass { + model("diagnostics") + } + + testClass { + model("codegen") + } + + testClass { + model("codegen") + } + } + } + generateTestGroupSuiteWithJUnit5(args) { testGroup( - "plugins/kotlin-serialization/kotlin-serialization-compiler/test", - "plugins/kotlin-serialization/kotlin-serialization-compiler/testData" + "plugins/kotlinx-serialization/tests-gen", + "plugins/kotlinx-serialization/testData" ) { // New test infrastructure ONLY diff --git a/prepare/ide-plugin-dependencies/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts b/prepare/ide-plugin-dependencies/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts index 20127ac3684..957e5542651 100644 --- a/prepare/ide-plugin-dependencies/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts +++ b/prepare/ide-plugin-dependencies/kotlinx-serialization-compiler-plugin-for-ide/build.gradle.kts @@ -2,4 +2,10 @@ plugins { kotlin("jvm") } -publishJarsForIde(listOf(":kotlinx-serialization-compiler-plugin")) +publishJarsForIde( + listOf( + ":kotlinx-serialization-compiler-plugin.common", + ":kotlinx-serialization-compiler-plugin.k1", + ":kotlinx-serialization-compiler-plugin.backend" + ) +) diff --git a/settings.gradle b/settings.gradle index b9b15e4da3e..e74e783d512 100644 --- a/settings.gradle +++ b/settings.gradle @@ -310,9 +310,6 @@ include ":kotlin-imports-dumper-compiler-plugin", ":plugins:jvm-abi-gen", ":plugins:jvm-abi-gen-embeddable", ":test-instrumenter", - ":kotlinx-serialization-compiler-plugin", - ":kotlin-serialization", - ":kotlin-serialization-unshaded", ":wasm:wasm.ir" @@ -371,6 +368,15 @@ include ":kotlin-lombok-compiler-plugin", ":kotlin-lombok-compiler-plugin.cli", ":kotlin-lombok" +include ":kotlinx-serialization-compiler-plugin", + ":kotlinx-serialization-compiler-plugin.common", + ":kotlinx-serialization-compiler-plugin.k1", + ":kotlinx-serialization-compiler-plugin.k2", + ":kotlinx-serialization-compiler-plugin.backend", + ":kotlinx-serialization-compiler-plugin.cli", + ":kotlin-serialization", + ":kotlin-serialization-unshaded" + if (!buildProperties.inJpsBuildIdeaSync) { include ":prepare:ide-plugin-dependencies:android-extensions-compiler-plugin-for-ide", ":prepare:ide-plugin-dependencies:allopen-compiler-plugin-for-ide", @@ -804,7 +810,12 @@ project(':plugins:jvm-abi-gen-embeddable').projectDir = "$rootDir/plugins/jvm-ab project(':js:js.tests').projectDir = "$rootDir/js/js.tests" as File project(':js:js.engines').projectDir = "$rootDir/js/js.engines" as File -project(':kotlinx-serialization-compiler-plugin').projectDir = file("$rootDir/plugins/kotlin-serialization/kotlin-serialization-compiler") +project(':kotlinx-serialization-compiler-plugin').projectDir = "$rootDir/plugins/kotlinx-serialization" as File +project(':kotlinx-serialization-compiler-plugin.cli').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.cli" as File +project(':kotlinx-serialization-compiler-plugin.backend').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.backend" as File +project(':kotlinx-serialization-compiler-plugin.k1').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.k1" as File +project(':kotlinx-serialization-compiler-plugin.k2').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.k2" as File +project(':kotlinx-serialization-compiler-plugin.common').projectDir = "$rootDir/plugins/kotlinx-serialization/kotlinx-serialization.common" as File project(':kotlin-serialization').projectDir = file("$rootDir/libraries/tools/kotlin-serialization") project(':kotlin-serialization-unshaded').projectDir = file("$rootDir/libraries/tools/kotlin-serialization-unshaded")