[IR] Reorder parameters in IrFactory#createTypeParameter

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-14 13:04:50 +02:00
committed by Space Team
parent b1f7b5e982
commit 2b4a08524d
12 changed files with 109 additions and 54 deletions
@@ -321,9 +321,14 @@ fun IrFunction.addValueParameter(name: Name, type: IrType, origin: IrDeclaration
internal fun IrFactory.buildTypeParameter(builder: IrTypeParameterBuilder, parent: IrDeclarationParent): IrTypeParameter =
with(builder) {
createTypeParameter(
startOffset, endOffset, origin,
IrTypeParameterSymbolImpl(),
name, index, isReified, variance
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = name,
symbol = IrTypeParameterSymbolImpl(),
variance = variance,
index = index,
isReified = isReified,
).also {
it.superTypes = superTypes
it.parent = parent
@@ -183,11 +183,11 @@ interface IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrTypeParameterSymbol,
name: Name,
symbol: IrTypeParameterSymbol,
variance: Variance,
index: Int,
isReified: Boolean,
variance: Variance,
): IrTypeParameter
fun createValueParameter(
@@ -224,11 +224,11 @@ abstract class AbstractIrFactoryImpl : IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrTypeParameterSymbol,
name: Name,
symbol: IrTypeParameterSymbol,
variance: Variance,
index: Int,
isReified: Boolean,
variance: Variance,
): IrTypeParameter =
IrTypeParameterImpl(startOffset, endOffset, origin, symbol, name, index, isReified, variance, factory = this)
@@ -346,21 +346,21 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrTypeParameterSymbol,
name: Name,
symbol: IrTypeParameterSymbol,
variance: Variance,
index: Int,
isReified: Boolean,
variance: Variance
isReified: Boolean
): IrTypeParameter {
return super.createTypeParameter(
startOffset,
endOffset,
origin,
symbol,
name,
symbol,
variance,
index,
isReified,
variance,
).register()
}
@@ -185,13 +185,13 @@ class LazyIrFactory(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrTypeParameterSymbol,
name: Name,
symbol: IrTypeParameterSymbol,
variance: Variance,
index: Int,
isReified: Boolean,
variance: Variance
isReified: Boolean
): IrTypeParameter = if (symbol.isBound)
symbol.owner
else
delegate.createTypeParameter(startOffset, endOffset, origin, symbol, name, index, isReified, variance)
delegate.createTypeParameter(startOffset, endOffset, origin, name, symbol, variance, index, isReified)
}
@@ -342,13 +342,14 @@ open class DeepCopyIrTreeWithSymbols(
private fun copyTypeParameter(declaration: IrTypeParameter): IrTypeParameter =
declaration.factory.createTypeParameter(
declaration.startOffset, declaration.endOffset,
mapDeclarationOrigin(declaration.origin),
symbolRemapper.getDeclaredTypeParameter(declaration.symbol),
symbolRenamer.getTypeParameterName(declaration.symbol),
declaration.index,
declaration.isReified,
declaration.variance
startOffset = declaration.startOffset,
endOffset = declaration.endOffset,
origin = mapDeclarationOrigin(declaration.origin),
name = symbolRenamer.getTypeParameterName(declaration.symbol),
symbol = symbolRemapper.getDeclaredTypeParameter(declaration.symbol),
variance = declaration.variance,
index = declaration.index,
isReified = declaration.isReified,
).apply {
transformAnnotations(declaration)
}
@@ -988,8 +988,14 @@ open class SymbolTable(
descriptor: TypeParameterDescriptor,
typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = {
irFactory.createTypeParameter(
startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor),
it.descriptor.index, it.descriptor.isReified, it.descriptor.variance
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = nameProvider.nameForDeclaration(descriptor),
symbol = it,
variance = it.descriptor.variance,
index = it.descriptor.index,
isReified = it.descriptor.isReified
)
}
): IrTypeParameter =
@@ -1015,8 +1021,14 @@ open class SymbolTable(
descriptor: TypeParameterDescriptor,
typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = {
irFactory.createTypeParameter(
startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor),
it.descriptor.index, it.descriptor.isReified, it.descriptor.variance
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = nameProvider.nameForDeclaration(descriptor),
symbol = it,
variance = it.descriptor.variance,
index = it.descriptor.index,
isReified = it.descriptor.isReified
)
}
): IrTypeParameter =