JVM_IR: remove dependency of JvmFileFacadeClass on stub generator
This commit is contained in:
committed by
Alexander Udalov
parent
3c939a1bdd
commit
6bc01f031c
+3
-1
@@ -106,7 +106,9 @@ open class JvmGeneratorExtensionsImpl(
|
|||||||
if (deserializedSource.facadeClassName != null) IrDeclarationOrigin.JVM_MULTIFILE_CLASS else IrDeclarationOrigin.FILE_CLASS,
|
if (deserializedSource.facadeClassName != null) IrDeclarationOrigin.JVM_MULTIFILE_CLASS else IrDeclarationOrigin.FILE_CLASS,
|
||||||
facadeName.fqNameForTopLevelClassMaybeWithDollars.shortName(),
|
facadeName.fqNameForTopLevelClassMaybeWithDollars.shortName(),
|
||||||
deserializedSource,
|
deserializedSource,
|
||||||
stubGenerator
|
deserializeIr = { facade ->
|
||||||
|
stubGenerator.extensions.deserializeClass(facade, stubGenerator, facade.parent, allowErrorNodes = false)
|
||||||
|
}
|
||||||
).also {
|
).also {
|
||||||
it.createParameterDeclarations()
|
it.createParameterDeclarations()
|
||||||
classNameOverride[it] = facadeName
|
classNameOverride[it] = facadeName
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.backend.jvm
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
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.IrDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
|
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.ir.util.DeserializableClass
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ class JvmFileFacadeClass(
|
|||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
name: Name,
|
||||||
source: SourceElement,
|
source: SourceElement,
|
||||||
private val stubGenerator: DeclarationStubGenerator
|
private val deserializeIr: (IrClass) -> Boolean,
|
||||||
) : IrClassImpl(
|
) : IrClassImpl(
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin,
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin,
|
||||||
IrClassSymbolImpl(), name, ClassKind.CLASS, DescriptorVisibilities.PUBLIC, Modality.FINAL,
|
IrClassSymbolImpl(), name, ClassKind.CLASS, DescriptorVisibilities.PUBLIC, Modality.FINAL,
|
||||||
@@ -28,7 +28,6 @@ class JvmFileFacadeClass(
|
|||||||
private var irLoaded: Boolean? = null
|
private var irLoaded: Boolean? = null
|
||||||
|
|
||||||
override fun loadIr(): Boolean {
|
override fun loadIr(): Boolean {
|
||||||
return irLoaded ?:
|
return irLoaded ?: deserializeIr(this).also { irLoaded = it }
|
||||||
stubGenerator.extensions.deserializeClass(this, stubGenerator, parent, allowErrorNodes = false).also { irLoaded = it }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user