[IR] Add isHidden flag into IrValueParameter

This commit is contained in:
Roman Artemev
2020-09-09 16:15:04 +03:00
parent be16fa76ab
commit 79e2886da1
3 changed files with 10 additions and 3 deletions
@@ -38,7 +38,8 @@ class IrValueParameterImpl(
override val type: IrType,
override val varargElementType: IrType?,
override val isCrossinline: Boolean,
override val isNoinline: Boolean
override val isNoinline: Boolean,
override val isHidden: Boolean = false
) : IrValueParameter() {
@ObsoleteDescriptorBasedAPI
override val descriptor: ParameterDescriptor
@@ -40,7 +40,8 @@ internal class PersistentIrValueParameter(
override val type: IrType,
override val varargElementType: IrType?,
override val isCrossinline: Boolean,
override val isNoinline: Boolean
override val isNoinline: Boolean,
override val isHidden: Boolean = false
) : IrValueParameter(),
PersistentIrDeclarationBase<ValueParameterCarrier>,
ValueParameterCarrier {
@@ -52,7 +53,7 @@ internal class PersistentIrValueParameter(
init {
symbol.bind(this)
}
override var lastModified: Int = stageController.currentStage
override var loweredUpTo: Int = stageController.currentStage
override var values: Array<Carrier>? = null
@@ -32,6 +32,11 @@ abstract class IrValueParameter : IrValueDeclaration(), IrSymbolDeclaration<IrVa
abstract val varargElementType: IrType?
abstract val isCrossinline: Boolean
abstract val isNoinline: Boolean
// if true parameter is not included into IdSignature.
// Skipping hidden params makes IrFunction be look similar to FE.
// NOTE: it is introduced to fix KT-40980 because more clear solution was not possible to implement.
// Once we are able to load any top-level declaration from klib this hack should be deprecated and removed.
abstract val isHidden: Boolean
abstract var defaultValue: IrExpressionBody?