diff --git a/plugins/parcelize/parcelize-compiler/build.gradle.kts b/plugins/parcelize/parcelize-compiler/build.gradle.kts index dd5ea32a6fe..be3f019d47d 100644 --- a/plugins/parcelize/parcelize-compiler/build.gradle.kts +++ b/plugins/parcelize/parcelize-compiler/build.gradle.kts @@ -26,18 +26,6 @@ dependencies { compileOnly(intellijCore()) compileOnly(commonDependency("org.jetbrains.intellij.deps:asm-all")) - // 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.backend.common")) - compileOnly(project(":compiler:ir.tree.impl")) - compileOnly(project(":compiler:fir:entrypoint")) - compileOnly(project(":kotlin-reflect-api")) - testApiJUnit5() testApi(project(":compiler:util")) @@ -56,6 +44,7 @@ dependencies { // FIR dependencies testApi(project(":compiler:fir:checkers")) testApi(project(":compiler:fir:checkers:checkers.jvm")) + testApi(project(":plugins:parcelize:parcelize-compiler:parcelize-fir")) testRuntimeOnly(project(":compiler:fir:fir-serialization")) testCompileOnly(project(":kotlin-reflect-api")) diff --git a/plugins/parcelize/parcelize-compiler/parcelize-fir/build.gradle.kts b/plugins/parcelize/parcelize-compiler/parcelize-fir/build.gradle.kts new file mode 100644 index 00000000000..76ecbaff1c3 --- /dev/null +++ b/plugins/parcelize/parcelize-compiler/parcelize-fir/build.gradle.kts @@ -0,0 +1,34 @@ +description = "Parcelize FIR compiler plugin" + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + testApi(intellijCore()) + + compileOnly(project(":plugins:parcelize:parcelize-compiler")) + + compileOnly(intellijCore()) + 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.backend.common")) + compileOnly(project(":compiler:ir.tree.impl")) + compileOnly(project(":compiler:fir:entrypoint")) + compileOnly(project(":kotlin-reflect-api")) +} + +sourceSets { + "main" { projectDefault() } + "test" { none() } +} + + +runtimeJar() +javadocJar() +sourcesJar() diff --git a/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt new file mode 100644 index 00000000000..4582fcacb73 --- /dev/null +++ b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ParcelizeFirIrGeneratorExtension.kt @@ -0,0 +1,19 @@ +/* + * 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.kotlin.parcelize + +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension +import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext +import org.jetbrains.kotlin.ir.declarations.IrModuleFragment +import org.jetbrains.kotlin.parcelize.ir.AndroidSymbols +import org.jetbrains.kotlin.parcelize.ir.ParcelizeFirIrTransformer + +class ParcelizeFirIrGeneratorExtension : IrGenerationExtension { + override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { + val androidSymbols = AndroidSymbols(pluginContext.irBuiltIns, moduleFragment) + ParcelizeFirIrTransformer(pluginContext, androidSymbols).transform(moduleFragment) + } +} diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeCheckersExtension.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeCheckersExtension.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeCheckersExtension.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeCheckersExtension.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeDeclarationGenerator.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeDeclarationGenerator.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeDeclarationGenerator.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeDeclarationGenerator.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeExtensionRegistrar.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeExtensionRegistrar.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeExtensionRegistrar.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizeExtensionRegistrar.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizePluginKey.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizePluginKey.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizePluginKey.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/FirParcelizePluginKey.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeAnnotationChecker.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeAnnotationChecker.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeAnnotationChecker.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeAnnotationChecker.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeClassChecker.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeClassChecker.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeClassChecker.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeClassChecker.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeConstructorChecker.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeConstructorChecker.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeConstructorChecker.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeConstructorChecker.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeFunctionChecker.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeFunctionChecker.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeFunctionChecker.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizeFunctionChecker.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizePropertyChecker.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizePropertyChecker.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizePropertyChecker.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/FirParcelizePropertyChecker.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtDefaultErrorMessagesParcelize.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt similarity index 100% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/fir/diagnostics/KtErrorsParcelize.kt diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt similarity index 95% rename from plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt rename to plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt index cdde9178df7..e831f2918e1 100644 --- a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.kt +++ b/plugins/parcelize/parcelize-compiler/parcelize-fir/src/org/jetbrains/kotlin/parcelize/ir/ParcelizeFirIrTransformer.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. */ @@ -11,11 +11,9 @@ import org.jetbrains.kotlin.fir.backend.IrPluginDeclarationOrigin import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrModuleFragment -import org.jetbrains.kotlin.ir.declarations.IrProperty import org.jetbrains.kotlin.ir.util.companionObject import org.jetbrains.kotlin.ir.util.functions import org.jetbrains.kotlin.ir.util.render -import org.jetbrains.kotlin.parcelize.ParcelizeNames.CREATOR_NAME import org.jetbrains.kotlin.parcelize.ParcelizeNames.PARCELER_FQN import org.jetbrains.kotlin.parcelize.ParcelizeSyntheticComponent import org.jetbrains.kotlin.parcelize.fir.FirParcelizePluginKey diff --git a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt b/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt index e1a2a388f8e..7919b57d669 100644 --- a/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt +++ b/plugins/parcelize/parcelize-compiler/src/org/jetbrains/kotlin/parcelize/ParcelizeIrGeneratorExtension.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.parcelize.ir.AndroidSymbols -import org.jetbrains.kotlin.parcelize.ir.ParcelizeFirIrTransformer import org.jetbrains.kotlin.parcelize.ir.ParcelizeIrTransformer class ParcelizeIrGeneratorExtension : IrGenerationExtension { @@ -19,9 +18,3 @@ class ParcelizeIrGeneratorExtension : IrGenerationExtension { } } -class ParcelizeFirIrGeneratorExtension : IrGenerationExtension { - override fun generate(moduleFragment: IrModuleFragment, pluginContext: IrPluginContext) { - val androidSymbols = AndroidSymbols(pluginContext.irBuiltIns, moduleFragment) - ParcelizeFirIrTransformer(pluginContext, androidSymbols).transform(moduleFragment) - } -} diff --git a/prepare/compiler/build.gradle.kts b/prepare/compiler/build.gradle.kts index 0c6094cd917..4c39a3dc818 100644 --- a/prepare/compiler/build.gradle.kts +++ b/prepare/compiler/build.gradle.kts @@ -111,6 +111,7 @@ val distCompilerPluginProjects = listOf( ":kotlin-allopen-compiler-plugin", ":kotlin-android-extensions-runtime", ":plugins:parcelize:parcelize-compiler", + ":plugins:parcelize:parcelize-compiler:parcelize-fir", ":plugins:parcelize:parcelize-runtime", ":kotlin-noarg-compiler-plugin", ":kotlin-sam-with-receiver-compiler-plugin", diff --git a/settings.gradle b/settings.gradle index c377c89c2b5..07dbc21e7c4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -332,6 +332,7 @@ include ":compiler:test-infrastructure", ":compiler:tests-common-new" include ":plugins:parcelize:parcelize-compiler", + ":plugins:parcelize:parcelize-compiler:parcelize-fir", ":plugins:parcelize:parcelize-runtime", ":kotlin-parcelize-compiler"