[IR] Reorder parameters in IrFactory#createValueParameter

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-14 14:32:58 +02:00
committed by Space Team
parent 2cc588d6d8
commit 9fcdc10019
23 changed files with 365 additions and 165 deletions
@@ -586,10 +586,18 @@ internal fun IrDeclarationParent.declareThisReceiverParameter(
explicitReceiver: FirReceiverParameter? = null,
): IrValueParameter {
return symbolTable.irFactory.createValueParameter(
startOffset, endOffset, thisOrigin, IrValueParameterSymbolImpl(),
name, UNDEFINED_PARAMETER_INDEX, thisType,
varargElementType = null, isCrossinline = false, isNoinline = false,
isHidden = false, isAssignable = false
startOffset = startOffset,
endOffset = endOffset,
origin = thisOrigin,
name = name,
type = thisType,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = UNDEFINED_PARAMETER_INDEX,
varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
).apply {
this.parent = this@declareThisReceiverParameter
explicitReceiver?.let { annotationGenerator.generate(this, it) }
@@ -331,11 +331,18 @@ class Fir2IrDeclarationStorage(
isNoinline: Boolean = false,
): IrValueParameter {
return irFactory.createValueParameter(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(),
name ?: SpecialNames.IMPLICIT_SET_PARAMETER, parent.contextReceiverParametersCount, type,
startOffset = startOffset,
endOffset = endOffset,
origin = IrDeclarationOrigin.DEFINED,
name = name ?: SpecialNames.IMPLICIT_SET_PARAMETER,
type = type,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = parent.contextReceiverParametersCount,
varargElementType = null,
isCrossinline = isCrossinline, isNoinline = isNoinline,
isHidden = false, isAssignable = false
isCrossinline = isCrossinline,
isNoinline = isNoinline,
isHidden = false,
).apply {
this.parent = parent
if (firValueParameter != null) {
@@ -1208,12 +1215,20 @@ class Fir2IrDeclarationStorage(
val type = valueParameter.returnTypeRef.toIrType(typeContext)
val irParameter = valueParameter.convertWithOffsets { startOffset, endOffset ->
irFactory.createValueParameter(
startOffset, endOffset, origin, IrValueParameterSymbolImpl(),
valueParameter.name, index, type,
if (!valueParameter.isVararg) null
else valueParameter.returnTypeRef.coneType.arrayElementType()?.toIrType(typeContext),
isCrossinline = valueParameter.isCrossinline, isNoinline = valueParameter.isNoinline,
isHidden = false, isAssignable = false
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = valueParameter.name,
type = type,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = index,
varargElementType =
if (!valueParameter.isVararg) null
else valueParameter.returnTypeRef.coneType.arrayElementType()?.toIrType(typeContext),
isCrossinline = valueParameter.isCrossinline,
isNoinline = valueParameter.isNoinline,
isHidden = false,
).apply {
if (!skipDefaultParameter && valueParameter.defaultValue.let {
it != null && (useStubForDefaultValueStub || it !is FirExpressionStub)
@@ -1240,11 +1255,18 @@ class Fir2IrDeclarationStorage(
val type = contextReceiver.typeRef.toIrType()
return contextReceiver.convertWithOffsets { startOffset, endOffset ->
irFactory.createValueParameter(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(),
NameUtils.contextReceiverName(index), index, type,
null,
isCrossinline = false, isNoinline = false,
isHidden = false, isAssignable = false
startOffset = startOffset,
endOffset = endOffset,
origin = IrDeclarationOrigin.DEFINED,
name = NameUtils.contextReceiverName(index),
type = type,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = index,
varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
)
}
}
@@ -262,18 +262,18 @@ internal class AdapterGenerator(
origin: IrDeclarationOrigin
): IrValueParameter =
irFactory.createValueParameter(
adapterFunction.startOffset,
adapterFunction.endOffset,
origin,
IrValueParameterSymbolImpl(),
name,
index,
type,
startOffset = adapterFunction.startOffset,
endOffset = adapterFunction.endOffset,
origin = origin,
name = name,
type = type,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = index,
varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false,
isAssignable = false
isHidden = false
).also { irAdapterValueParameter ->
irAdapterValueParameter.parent = adapterFunction
}
@@ -277,8 +277,18 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) : Fir2IrCompon
private fun createSyntheticIrParameter(irFunction: IrFunction, name: Name, type: IrType, index: Int = 0): IrValueParameter =
components.irFactory.createValueParameter(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED, IrValueParameterSymbolImpl(), name, index, type, null,
isCrossinline = false, isNoinline = false, isHidden = false, isAssignable = false
startOffset = UNDEFINED_OFFSET,
endOffset = UNDEFINED_OFFSET,
origin = IrDeclarationOrigin.DEFINED,
name = name,
type = type,
isAssignable = false,
symbol = IrValueParameterSymbolImpl(),
index = index,
varargElementType = null,
isCrossinline = false,
isNoinline = false,
isHidden = false
).apply {
parent = irFunction
}