From c3f66cda65796fdff18a150cfb37ad548d8d0cb8 Mon Sep 17 00:00:00 2001 From: Leonid Startsev Date: Wed, 4 Jul 2018 12:34:00 +0300 Subject: [PATCH] Lowering extension point --- .../cli/jvm/compiler/KotlinCoreEnvironment.kt | 2 ++ .../extensions/IrGenerationExtension.kt | 22 +++++++++++++++++++ idea/src/META-INF/extensions/compiler.xml | 3 +++ 3 files changed, 27 insertions(+) create mode 100644 compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt index 4525134cf69..f0ea4832870 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinCoreEnvironment.kt @@ -64,6 +64,7 @@ import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport import org.jetbrains.kotlin.asJava.LightClassGenerationSupport import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.finder.JavaElementFinder +import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.CliModuleVisibilityManagerImpl import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY @@ -185,6 +186,7 @@ class KotlinCoreEnvironment private constructor( PreprocessedVirtualFileFactoryExtension.registerExtensionPoint(project) JsSyntheticTranslateExtension.registerExtensionPoint(project) CompilerConfigurationExtension.registerExtensionPoint(project) + IrGenerationExtension.registerExtensionPoint(project) val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt new file mode 100644 index 00000000000..6cc43599042 --- /dev/null +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/extensions/IrGenerationExtension.kt @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. 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.backend.common.extensions + +import org.jetbrains.kotlin.backend.common.BackendContext +import org.jetbrains.kotlin.extensions.ProjectExtensionDescriptor +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.resolve.BindingContext + +interface IrGenerationExtension { + companion object : + ProjectExtensionDescriptor("org.jetbrains.kotlin.irGenerationExtension", IrGenerationExtension::class.java) + + fun generate( + file: IrFile, + backendContext: BackendContext, + bindingContext: BindingContext + ) +} \ No newline at end of file diff --git a/idea/src/META-INF/extensions/compiler.xml b/idea/src/META-INF/extensions/compiler.xml index bead639f672..2fc1b3f6739 100644 --- a/idea/src/META-INF/extensions/compiler.xml +++ b/idea/src/META-INF/extensions/compiler.xml @@ -14,6 +14,9 @@ +