diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt index cc2acb9ba08..7a64c9c2ac8 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrAnonymousInitializer.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol +import org.jetbrains.kotlin.ir.util.IdSignature // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -33,6 +34,8 @@ internal class PersistentIrAnonymousInitializer( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt index edb8cb8332c..1bf1581657a 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrClass.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -60,6 +61,8 @@ internal class PersistentIrClass( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt index fe01e996c4a..20f108780c3 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrConstructor.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -51,6 +52,8 @@ internal class PersistentIrConstructor( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt index ebfd3cd8cf5..5c3cdd2a885 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrEnumEntry.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -36,6 +37,8 @@ internal class PersistentIrEnumEntry( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt index 6c4c6958959..b458f93cc52 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrErrorDeclaration.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorDeclarationCarrier import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor import org.jetbrains.kotlin.ir.expressions.IrConstructorCall +import org.jetbrains.kotlin.ir.util.IdSignature // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -29,6 +30,8 @@ internal class PersistentIrErrorDeclaration( override val descriptor: DeclarationDescriptor get() = _descriptor ?: this.toIrBasedDescriptor() + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt index 1977274a1df..015ff0489d0 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrField.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -43,6 +44,8 @@ internal class PersistentIrField( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt index 0cc43fd38b2..b307f8a0d88 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFunctionCommon.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -49,6 +50,8 @@ internal abstract class PersistentIrFunctionCommon( PersistentIrDeclarationBase, FunctionCarrier { + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt index d2b2c58542b..3c8a50e0dad 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrLocalDelegatedProperty.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -41,6 +42,8 @@ internal class PersistentIrLocalDelegatedProperty( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt index b0daa39cc07..21ec0c951e0 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrPropertyCommon.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource @@ -42,6 +43,8 @@ internal abstract class PersistentIrPropertyCommon( PersistentIrDeclarationBase, PropertyCarrier { + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt index a7cffb90e16..a5e692db1bd 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeAlias.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -40,6 +41,8 @@ internal class PersistentIrTypeAlias( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt index 9664dde732a..846dcbc253f 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrTypeParameter.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCar import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance @@ -38,6 +39,8 @@ internal class PersistentIrTypeParameter( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt index 4895c20a46d..b210002a64b 100644 --- a/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt +++ b/compiler/ir/ir.tree.persistent/gen/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrValueParameter.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name // Auto-generated by compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT! @@ -46,6 +47,8 @@ internal class PersistentIrValueParameter( symbol.bind(this) } + override var signature: IdSignature? = factory.currentSignature(this) + override var lastModified: Int = factory.stageController.currentStage override var loweredUpTo: Int = factory.stageController.currentStage override var values: Array? = null diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt index 5fb3407e6dd..f1f1f2e8918 100644 --- a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/ErrorDeclaration.kt @@ -24,6 +24,8 @@ internal fun PersistentIrGenerator.generateErrorDeclaration() { +" get() = _descriptor ?: this." + import("toIrBasedDescriptor", "org.jetbrains.kotlin.ir.descriptors") + "()" ), id, + signature, + id, lastModified, loweredUpTo, values, diff --git a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt index fd3e26f6050..8f0fd51b0a4 100644 --- a/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt +++ b/compiler/ir/ir.tree.persistent/generator/src/org/jetbrains/kotlin/ir/persistentIrGenerator/PersistentIrGenerator.kt @@ -97,6 +97,8 @@ internal object PersistentIrGenerator { val IrValueParameterSymbol = irSymbol("IrValueParameterSymbol") val IrTypeParameterSymbol = irSymbol("IrTypeParameterSymbol") + val IdSignature = import("IdSignature", "org.jetbrains.kotlin.ir.util") + // Constructor parameters val startOffset = +"override val startOffset: Int" @@ -196,6 +198,8 @@ internal object PersistentIrGenerator { ) // Fields + val signature = +"override var signature: " + IdSignature + "? = factory.currentSignature(this)" + val lastModified = +"override var lastModified: Int = factory.stageController.currentStage" val loweredUpTo = +"override var loweredUpTo: Int = factory.stageController.currentStage" val values = +"override var values: Array<" + Carrier + ">? = null" @@ -207,6 +211,8 @@ internal object PersistentIrGenerator { val annotationsField = +"override var annotationsField: List<" + IrConstructorCall + "> = emptyList()" val commonFields = lines( + signature, + id, lastModified, loweredUpTo, values, diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrDeclarationBase.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrDeclarationBase.kt index e63513d1b1b..5b87ada0784 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrDeclarationBase.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrDeclarationBase.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.ir.declarations.persistent.carriers.DeclarationCarri import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrSymbol +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.utils.addToStdlib.cast interface PersistentIrDeclarationBase : PersistentIrElementBase, IrDeclaration, DeclarationCarrier { @@ -32,6 +33,8 @@ interface PersistentIrDeclarationBase : PersistentIrElem override var annotationsField: List + var signature: IdSignature? + // TODO reduce boilerplate override var parent: IrDeclarationParent get() = getCarrier().parentField ?: throw UninitializedPropertyAccessException("Parent not initialized: $this") diff --git a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFactory.kt b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFactory.kt index 64ed078cbb9..bfa4868f44f 100644 --- a/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFactory.kt +++ b/compiler/ir/ir.tree.persistent/src/org/jetbrains/kotlin/ir/declarations/persistent/PersistentIrFactory.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.ir.expressions.persistent.PersistentIrBlockBody import org.jetbrains.kotlin.ir.expressions.persistent.PersistentIrExpressionBody import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.types.IrType +import org.jetbrains.kotlin.ir.util.IdSignature import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.types.Variance @@ -23,6 +24,9 @@ class PersistentIrFactory : IrFactory { override var stageController = StageController() + @Suppress("UNUSED_PARAMETER") + fun currentSignature(declaration: IrDeclaration): IdSignature? = null + override fun createAnonymousInitializer( startOffset: Int, endOffset: Int, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/PersistentApi.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/PersistentApi.kt index 423906922db..abcc0e4bcd0 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/PersistentApi.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/PersistentApi.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.declarations import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.expressions.IrBody +import org.jetbrains.kotlin.ir.util.IdSignature open class StageController(open val currentStage: Int = 0) { open fun lazyLower(declaration: IrDeclaration) {} @@ -28,4 +29,7 @@ open class StageController(open val currentStage: Int = 0) { open fun unrestrictDeclarationListsAccess(fn: () -> T): T = fn() open fun canAccessDeclarationsOf(irClass: IrClass): Boolean = true + + // Used in JS IC. Declarations created during lowerings need meaningful signatures. + open fun createSignature(parentSignature: IdSignature): IdSignature? = null } \ No newline at end of file