Fir2Ir: introduce Fir2IrExtensions
This allows us to remove DeclarationStubGenerator from Fir2IrConverter, thus reducing dependency on descriptor-based code.
This commit is contained in:
committed by
Alexander Udalov
parent
6bc01f031c
commit
3c3c1be543
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* 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)
|
||||
}
|
||||
+2
-5
@@ -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.lower.SingletonObjectJvmStaticTransformer
|
||||
import org.jetbrains.kotlin.backend.jvm.serialization.deserializeFromByteArray
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
@@ -106,9 +105,7 @@ open class JvmGeneratorExtensionsImpl(
|
||||
if (deserializedSource.facadeClassName != null) IrDeclarationOrigin.JVM_MULTIFILE_CLASS else IrDeclarationOrigin.FILE_CLASS,
|
||||
facadeName.fqNameForTopLevelClassMaybeWithDollars.shortName(),
|
||||
deserializedSource,
|
||||
deserializeIr = { facade ->
|
||||
stubGenerator.extensions.deserializeClass(facade, stubGenerator, facade.parent, allowErrorNodes = false)
|
||||
}
|
||||
deserializeIr = { facade -> deserializeClass(facade, stubGenerator, facade.parent, allowErrorNodes = false) }
|
||||
).also {
|
||||
it.createParameterDeclarations()
|
||||
classNameOverride[it] = facadeName
|
||||
@@ -132,7 +129,7 @@ open class JvmGeneratorExtensionsImpl(
|
||||
irClass,
|
||||
JvmIrTypeSystemContext(stubGenerator.irBuiltIns), allowErrorNodes
|
||||
)
|
||||
irClass.transform(SingletonObjectJvmStaticTransformer(stubGenerator.irBuiltIns, cachedFields), null)
|
||||
irClass.handleJvmStaticInSingletonObjects(stubGenerator.irBuiltIns, cachedFields)
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user