Fir2Ir: make Fir2IrLazyClass a DeserializableClass
This commit is contained in:
committed by
Alexander Udalov
parent
0012ba79e1
commit
ae158e4c5b
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
|||||||
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||||
|
import org.jetbrains.kotlin.ir.util.DeserializableClass
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.util.OperatorNameConventions
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
@@ -40,7 +41,8 @@ class Fir2IrLazyClass(
|
|||||||
override var origin: IrDeclarationOrigin,
|
override var origin: IrDeclarationOrigin,
|
||||||
override val fir: FirRegularClass,
|
override val fir: FirRegularClass,
|
||||||
override val symbol: Fir2IrClassSymbol,
|
override val symbol: Fir2IrClassSymbol,
|
||||||
) : IrClass(), AbstractFir2IrLazyDeclaration<FirRegularClass, IrClass>, IrMaybeDeserializedClass, Fir2IrComponents by components {
|
) : IrClass(), AbstractFir2IrLazyDeclaration<FirRegularClass, IrClass>,
|
||||||
|
IrMaybeDeserializedClass, DeserializableClass, Fir2IrComponents by components {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
classifierStorage.preCacheTypeParameters(fir)
|
classifierStorage.preCacheTypeParameters(fir)
|
||||||
@@ -227,4 +229,11 @@ class Fir2IrLazyClass(
|
|||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var irLoaded: Boolean? = null
|
||||||
|
|
||||||
|
override fun loadIr(): Boolean {
|
||||||
|
assert(parent is IrPackageFragment)
|
||||||
|
return irLoaded ?: extensions.deserializeToplevelClass(this, this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user