Lowering extension point
This commit is contained in:
@@ -64,6 +64,7 @@ import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
|||||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
||||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
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.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.CliModuleVisibilityManagerImpl
|
import org.jetbrains.kotlin.cli.common.CliModuleVisibilityManagerImpl
|
||||||
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
|
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
|
||||||
@@ -185,6 +186,7 @@ class KotlinCoreEnvironment private constructor(
|
|||||||
PreprocessedVirtualFileFactoryExtension.registerExtensionPoint(project)
|
PreprocessedVirtualFileFactoryExtension.registerExtensionPoint(project)
|
||||||
JsSyntheticTranslateExtension.registerExtensionPoint(project)
|
JsSyntheticTranslateExtension.registerExtensionPoint(project)
|
||||||
CompilerConfigurationExtension.registerExtensionPoint(project)
|
CompilerConfigurationExtension.registerExtensionPoint(project)
|
||||||
|
IrGenerationExtension.registerExtensionPoint(project)
|
||||||
|
|
||||||
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY)
|
||||||
|
|
||||||
|
|||||||
+22
@@ -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<IrGenerationExtension>("org.jetbrains.kotlin.irGenerationExtension", IrGenerationExtension::class.java)
|
||||||
|
|
||||||
|
fun generate(
|
||||||
|
file: IrFile,
|
||||||
|
backendContext: BackendContext,
|
||||||
|
bindingContext: BindingContext
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -14,6 +14,9 @@
|
|||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.jsSyntheticTranslateExtension"
|
<extensionPoint qualifiedName="org.jetbrains.kotlin.jsSyntheticTranslateExtension"
|
||||||
interface="org.jetbrains.kotlin.js.translate.extensions.JsSyntheticTranslateExtension"
|
interface="org.jetbrains.kotlin.js.translate.extensions.JsSyntheticTranslateExtension"
|
||||||
area="IDEA_PROJECT"/>
|
area="IDEA_PROJECT"/>
|
||||||
|
<extensionPoint qualifiedName="org.jetbrains.kotlin.irGenerationExtension"
|
||||||
|
interface="org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension"
|
||||||
|
area="IDEA_PROJECT"/>
|
||||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.simpleNameReferenceExtension"
|
<extensionPoint qualifiedName="org.jetbrains.kotlin.simpleNameReferenceExtension"
|
||||||
interface="org.jetbrains.kotlin.plugin.references.SimpleNameReferenceExtension"
|
interface="org.jetbrains.kotlin.plugin.references.SimpleNameReferenceExtension"
|
||||||
area="IDEA_PROJECT"/>
|
area="IDEA_PROJECT"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user