Remove dependency of fir2ir:jvm-backend on backend.jvm.entrypoint
Extract JvmIrDeserializer(Impl), similarly to the existing JvmIrSerializer(Impl). Remove `allowErrorNodes` which is always false anyway.
This commit is contained in:
+3
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.asJava.FilteredJvmDiagnostics
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmGeneratorExtensions
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.cli.common.CLICompiler
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.CommonCompilerPerformanceManager
|
||||
@@ -52,6 +53,7 @@ import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.isArrayType
|
||||
import org.jetbrains.kotlin.fir.types.isString
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.IncrementalPackagePartProvider
|
||||
import org.jetbrains.kotlin.load.kotlin.incremental.components.IncrementalCompilationComponents
|
||||
import org.jetbrains.kotlin.modules.Module
|
||||
@@ -165,7 +167,7 @@ object FirKotlinToJvmBytecodeCompiler {
|
||||
performanceManager?.notifyGenerationStarted()
|
||||
performanceManager?.notifyIRTranslationStarted()
|
||||
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration)
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(moduleConfiguration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val fir2IrResult = firResult.session.convertToIr(firResult.scopeSession, firResult.fir, fir2IrExtensions, irGenerationExtensions)
|
||||
|
||||
performanceManager?.notifyIRTranslationFinished()
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.KtVirtualFileSourceFile
|
||||
import org.jetbrains.kotlin.analyzer.common.CommonPlatformAnalyzerServices
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.CommonCompilerPerformanceManager
|
||||
import org.jetbrains.kotlin.cli.common.config.kotlinSourceRoots
|
||||
@@ -60,6 +61,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
|
||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectEnvironment
|
||||
import org.jetbrains.kotlin.fir.session.environment.AbstractProjectFileSearchScope
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.javac.JavacWrapper
|
||||
import org.jetbrains.kotlin.load.kotlin.MetadataFinderFactory
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||
@@ -185,7 +187,7 @@ fun convertAnalyzedFirToIr(
|
||||
analysisResults: ModuleCompilerAnalyzedOutput,
|
||||
environment: ModuleCompilerEnvironment
|
||||
): ModuleCompilerIrBackendInput {
|
||||
val extensions = JvmFir2IrExtensions(input.configuration)
|
||||
val extensions = JvmFir2IrExtensions(input.configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
|
||||
// fir2ir
|
||||
val irGenerationExtensions =
|
||||
|
||||
@@ -18,7 +18,6 @@ dependencies {
|
||||
compileOnly(project(":compiler:ir.tree.impl"))
|
||||
compileOnly(project(":compiler:backend"))
|
||||
compileOnly(project(":compiler:backend.jvm"))
|
||||
compileOnly(project(":compiler:backend.jvm.entrypoint"))
|
||||
api(project(":compiler:ir.serialization.common"))
|
||||
|
||||
compileOnly(intellijCore())
|
||||
|
||||
+11
-28
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer
|
||||
import org.jetbrains.kotlin.backend.jvm.*
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.deserializeFromByteArray
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.JvmSerializeIrMode
|
||||
@@ -15,24 +14,21 @@ import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||
import org.jetbrains.kotlin.fir.backend.Fir2IrExtensions
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.ir.util.constructors
|
||||
import org.jetbrains.kotlin.ir.util.createParameterDeclarations
|
||||
import org.jetbrains.kotlin.ir.util.createSpecialAnnotationClass
|
||||
import org.jetbrains.kotlin.ir.util.*
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
|
||||
import org.jetbrains.kotlin.load.kotlin.FacadeClassSource
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
|
||||
class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensions, JvmGeneratorExtensions {
|
||||
|
||||
class JvmFir2IrExtensions(
|
||||
configuration: CompilerConfiguration,
|
||||
private val irDeserializer: JvmIrDeserializer,
|
||||
private val mangler: KotlinMangler.IrMangler,
|
||||
) : Fir2IrExtensions, JvmGeneratorExtensions {
|
||||
override val classNameOverride: MutableMap<IrClass, JvmClassName> = mutableMapOf()
|
||||
override val cachedFields = CachedFieldsForObjectInstances(IrFactoryImpl, configuration.languageVersionSettings)
|
||||
|
||||
@@ -62,7 +58,7 @@ class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensio
|
||||
}
|
||||
|
||||
override fun registerDeclarations(symbolTable: SymbolTable) {
|
||||
val signatureComputer = PublicIdSignatureComputer(JvmIrMangler)
|
||||
val signatureComputer = PublicIdSignatureComputer(mangler)
|
||||
specialAnnotationConstructors.forEach { constructor ->
|
||||
symbolTable.declareConstructorWithSignature(signatureComputer.composePublicIdSignature(constructor, false), constructor.symbol)
|
||||
}
|
||||
@@ -86,21 +82,8 @@ class JvmFir2IrExtensions(configuration: CompilerConfiguration) : Fir2IrExtensio
|
||||
}
|
||||
}
|
||||
|
||||
override fun deserializeToplevelClass(irClass: IrClass, components: Fir2IrComponents): Boolean {
|
||||
with(components) {
|
||||
val serializedIr = when (val source = irClass.source) {
|
||||
is KotlinJvmBinarySourceElement -> source.binaryClass.classHeader.serializedIr
|
||||
is JvmPackagePartSource -> source.knownJvmBinaryClass?.classHeader?.serializedIr
|
||||
else -> null
|
||||
} ?: return false
|
||||
deserializeFromByteArray(
|
||||
serializedIr,
|
||||
irBuiltIns, symbolTable, irProviders,
|
||||
irClass,
|
||||
JvmIrTypeSystemContext(irBuiltIns), allowErrorNodes = false
|
||||
)
|
||||
irClass.handleJvmStaticInSingletonObjects(irBuiltIns, cachedFields)
|
||||
return true
|
||||
}
|
||||
}
|
||||
override fun deserializeToplevelClass(irClass: IrClass, components: Fir2IrComponents): Boolean =
|
||||
irDeserializer.deserializeTopLevelClass(
|
||||
irClass, components.irBuiltIns, components.symbolTable, components.irProviders, this
|
||||
)
|
||||
}
|
||||
|
||||
+2
-1
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.KtIoFileSourceFile
|
||||
import org.jetbrains.kotlin.KtSourceFile
|
||||
import org.jetbrains.kotlin.KtVirtualFileSourceFile
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.JvmIdSignatureDescriptor
|
||||
import org.jetbrains.kotlin.build.DEFAULT_KOTLIN_SOURCE_FILES_EXTENSIONS
|
||||
import org.jetbrains.kotlin.build.report.BuildReporter
|
||||
@@ -268,7 +269,7 @@ class IncrementalFirJvmCompilerRunner(
|
||||
performanceManager?.notifyGenerationStarted()
|
||||
performanceManager?.notifyIRTranslationStarted()
|
||||
|
||||
val extensions = JvmFir2IrExtensions(configuration)
|
||||
val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val irGenerationExtensions =
|
||||
(projectEnvironment as? VfsBasedProjectEnvironment)?.project?.let { IrGenerationExtension.getInstances(it) }.orEmpty()
|
||||
val signaturer = JvmIdSignatureDescriptor(JvmDescriptorMangler(null))
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2021 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.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.lower.SingletonObjectJvmStaticTransformer
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
|
||||
fun IrClass.handleJvmStaticInSingletonObjects(irBuiltIns: IrBuiltIns, cachedFields: CachedFieldsForObjectInstances) {
|
||||
transform(SingletonObjectJvmStaticTransformer(irBuiltIns, cachedFields), null)
|
||||
}
|
||||
+4
-20
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.PublicIdSignatureComputer
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.deserializeFromByteArray
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.JvmSerializeIrMode
|
||||
@@ -31,8 +30,6 @@ import org.jetbrains.kotlin.load.java.descriptors.getParentJavaStaticClassScope
|
||||
import org.jetbrains.kotlin.load.java.sam.JavaSingleAbstractMethodUtils
|
||||
import org.jetbrains.kotlin.load.java.typeEnhancement.hasEnhancedNullability
|
||||
import org.jetbrains.kotlin.load.kotlin.FacadeClassSource
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtPureClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.pureEndOffset
|
||||
@@ -103,7 +100,7 @@ open class JvmGeneratorExtensionsImpl(
|
||||
if (deserializedSource.facadeClassName != null) IrDeclarationOrigin.JVM_MULTIFILE_CLASS else IrDeclarationOrigin.FILE_CLASS,
|
||||
facadeName.fqNameForTopLevelClassMaybeWithDollars.shortName(),
|
||||
deserializedSource,
|
||||
deserializeIr = { facade -> deserializeClass(facade, stubGenerator, facade.parent, allowErrorNodes = false) }
|
||||
deserializeIr = { facade -> deserializeClass(facade, stubGenerator, facade.parent) }
|
||||
).also {
|
||||
it.createParameterDeclarations()
|
||||
classNameOverride[it] = facadeName
|
||||
@@ -114,22 +111,9 @@ open class JvmGeneratorExtensionsImpl(
|
||||
irClass: IrClass,
|
||||
stubGenerator: DeclarationStubGenerator,
|
||||
parent: IrDeclarationParent,
|
||||
allowErrorNodes: Boolean
|
||||
): Boolean {
|
||||
val serializedIr = when (val source = irClass.source) {
|
||||
is KotlinJvmBinarySourceElement -> source.binaryClass.classHeader.serializedIr
|
||||
is JvmPackagePartSource -> source.knownJvmBinaryClass?.classHeader?.serializedIr
|
||||
else -> null
|
||||
} ?: return false
|
||||
deserializeFromByteArray(
|
||||
serializedIr,
|
||||
stubGenerator.irBuiltIns, stubGenerator.symbolTable, listOf(stubGenerator),
|
||||
irClass,
|
||||
JvmIrTypeSystemContext(stubGenerator.irBuiltIns), allowErrorNodes
|
||||
)
|
||||
irClass.handleJvmStaticInSingletonObjects(stubGenerator.irBuiltIns, cachedFields)
|
||||
return true
|
||||
}
|
||||
): Boolean = JvmIrDeserializerImpl().deserializeTopLevelClass(
|
||||
irClass, stubGenerator.irBuiltIns, stubGenerator.symbolTable, listOf(stubGenerator), this
|
||||
)
|
||||
|
||||
override fun isPropertyWithPlatformField(descriptor: PropertyDescriptor): Boolean =
|
||||
descriptor.hasJvmFieldAnnotation()
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2010-2021 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.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.lower.SingletonObjectJvmStaticTransformer
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.deserializeFromByteArray
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
|
||||
|
||||
class JvmIrDeserializerImpl : JvmIrDeserializer {
|
||||
override fun deserializeTopLevelClass(
|
||||
irClass: IrClass,
|
||||
irBuiltIns: IrBuiltIns,
|
||||
symbolTable: SymbolTable,
|
||||
irProviders: List<IrProvider>,
|
||||
extensions: JvmGeneratorExtensions,
|
||||
): Boolean {
|
||||
val serializedIr = when (val source = irClass.source) {
|
||||
is KotlinJvmBinarySourceElement -> source.binaryClass.classHeader.serializedIr
|
||||
is JvmPackagePartSource -> source.knownJvmBinaryClass?.classHeader?.serializedIr
|
||||
else -> null
|
||||
} ?: return false
|
||||
deserializeFromByteArray(
|
||||
serializedIr, irBuiltIns, symbolTable, irProviders, irClass, JvmIrTypeSystemContext(irBuiltIns)
|
||||
)
|
||||
|
||||
irClass.transform(SingletonObjectJvmStaticTransformer(irBuiltIns, extensions.cachedFields), null)
|
||||
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* 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.backend.jvm
|
||||
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||
import org.jetbrains.kotlin.ir.linkage.IrProvider
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
|
||||
interface JvmIrDeserializer {
|
||||
fun deserializeTopLevelClass(
|
||||
irClass: IrClass,
|
||||
irBuiltIns: IrBuiltIns,
|
||||
symbolTable: SymbolTable,
|
||||
irProviders: List<IrProvider>,
|
||||
extensions: JvmGeneratorExtensions,
|
||||
): Boolean
|
||||
}
|
||||
@@ -120,7 +120,7 @@ class IrLazyClass(
|
||||
|
||||
override fun loadIr(): Boolean {
|
||||
assert(parent is IrPackageFragment)
|
||||
return irLoaded ?:
|
||||
stubGenerator.extensions.deserializeClass(this, stubGenerator, parent, allowErrorNodes = false).also { irLoaded = it }
|
||||
return irLoaded
|
||||
?: stubGenerator.extensions.deserializeClass(this, stubGenerator, parent).also { irLoaded = it }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,6 @@ open class StubGeneratorExtensions {
|
||||
irClass: IrClass,
|
||||
stubGenerator: DeclarationStubGenerator,
|
||||
parent: IrDeclarationParent,
|
||||
allowErrorNodes: Boolean,
|
||||
): Boolean = false
|
||||
|
||||
open val enhancedNullability: EnhancedNullability
|
||||
|
||||
+2
-3
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.backend.common.serialization.*
|
||||
import org.jetbrains.kotlin.backend.common.serialization.encodings.BinarySymbolData
|
||||
import org.jetbrains.kotlin.backend.common.serialization.signature.IdSignatureSerializer
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.proto.JvmIr
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.ir.IrBuiltIns
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
@@ -43,7 +43,6 @@ fun deserializeFromByteArray(
|
||||
irProviders: List<IrProvider>,
|
||||
toplevelParent: IrClass,
|
||||
typeSystemContext: IrTypeSystemContext,
|
||||
allowErrorNodes: Boolean,
|
||||
) {
|
||||
val irProto = JvmIr.ClassOrFile.parseFrom(byteArray.codedInputStream)
|
||||
val irLibraryFile = IrLibraryFileFromAnnotation(
|
||||
@@ -79,7 +78,7 @@ fun deserializeFromByteArray(
|
||||
// Patching will be needed.
|
||||
val deserializer = IrDeclarationDeserializer(
|
||||
irBuiltIns, symbolTable, lazyIrFactory, irLibraryFile, toplevelParent,
|
||||
allowErrorNodes = allowErrorNodes,
|
||||
allowErrorNodes = false,
|
||||
deserializeInlineFunctions = true,
|
||||
deserializeBodies = true,
|
||||
symbolDeserializer,
|
||||
|
||||
+3
-2
@@ -5,8 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.frontend.fir
|
||||
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmGeneratorExtensionsImpl
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM
|
||||
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendClassResolver
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.psi
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.CompilerEnvironment
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory
|
||||
@@ -42,7 +43,7 @@ class Fir2IrResultsConverter(
|
||||
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||
val configuration = compilerConfigurationProvider.getCompilerConfiguration(module)
|
||||
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration)
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val (irModuleFragment, components) = inputArtifact.firAnalyzerFacade.convertToIr(fir2IrExtensions)
|
||||
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
|
||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmIrDeserializerImpl
|
||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
|
||||
@@ -34,6 +35,7 @@ import org.jetbrains.kotlin.fir.backend.jvm.FirJvmBackendExtension
|
||||
import org.jetbrains.kotlin.fir.backend.jvm.JvmFir2IrExtensions
|
||||
import org.jetbrains.kotlin.fir.createSessionForTests
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries
|
||||
import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmIrMangler
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.resolve.AnalyzingUtils
|
||||
@@ -113,7 +115,7 @@ object GenerationUtils {
|
||||
emptyList(),
|
||||
IrGenerationExtension.getInstances(project)
|
||||
)
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration)
|
||||
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
|
||||
val (moduleFragment, components) = firAnalyzerFacade.convertToIr(fir2IrExtensions)
|
||||
val dummyBindingContext = NoScopeRecordCliBindingTrace().bindingContext
|
||||
|
||||
|
||||
Reference in New Issue
Block a user