JVM_IR: remove dependency of JvmFileFacadeClass on stub generator

This commit is contained in:
Georgy Bronnikov
2021-12-03 14:40:53 +03:00
committed by Alexander Udalov
parent 3c939a1bdd
commit 6bc01f031c
2 changed files with 6 additions and 5 deletions
@@ -106,7 +106,9 @@ open class JvmGeneratorExtensionsImpl(
if (deserializedSource.facadeClassName != null) IrDeclarationOrigin.JVM_MULTIFILE_CLASS else IrDeclarationOrigin.FILE_CLASS,
facadeName.fqNameForTopLevelClassMaybeWithDollars.shortName(),
deserializedSource,
stubGenerator
deserializeIr = { facade ->
stubGenerator.extensions.deserializeClass(facade, stubGenerator, facade.parent, allowErrorNodes = false)
}
).also {
it.createParameterDeclarations()
classNameOverride[it] = facadeName
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.backend.jvm
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator
import org.jetbrains.kotlin.ir.util.DeserializableClass
import org.jetbrains.kotlin.name.Name
@@ -18,7 +18,7 @@ class JvmFileFacadeClass(
origin: IrDeclarationOrigin,
name: Name,
source: SourceElement,
private val stubGenerator: DeclarationStubGenerator
private val deserializeIr: (IrClass) -> Boolean,
) : IrClassImpl(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin,
IrClassSymbolImpl(), name, ClassKind.CLASS, DescriptorVisibilities.PUBLIC, Modality.FINAL,
@@ -28,7 +28,6 @@ class JvmFileFacadeClass(
private var irLoaded: Boolean? = null
override fun loadIr(): Boolean {
return irLoaded ?:
stubGenerator.extensions.deserializeClass(this, stubGenerator, parent, allowErrorNodes = false).also { irLoaded = it }
return irLoaded ?: deserializeIr(this).also { irLoaded = it }
}
}