[IR] Reorder parameters in IrFactory#createClass

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-13 19:10:05 +02:00
committed by Space Team
parent bfb314adcb
commit f46761a241
13 changed files with 161 additions and 75 deletions
@@ -27,10 +27,21 @@ import org.jetbrains.kotlin.types.Variance
@PublishedApi
internal fun IrFactory.buildClass(builder: IrClassBuilder): IrClass = with(builder) {
createClass(
startOffset, endOffset, origin,
IrClassSymbolImpl(),
name, kind, visibility, modality,
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = name,
visibility = visibility,
symbol = IrClassSymbolImpl(),
kind = kind,
modality = modality,
isExternal = isExternal,
isCompanion = isCompanion,
isInner = isInner,
isData = isData,
isValue = isValue,
isExpect = isExpect,
isFun = isFun,
)
}
@@ -31,15 +31,15 @@ interface IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
name: Name,
kind: ClassKind,
visibility: DescriptorVisibility,
symbol: IrClassSymbol,
kind: ClassKind,
modality: Modality,
isExternal: Boolean = false,
isCompanion: Boolean = false,
isInner: Boolean = false,
isData: Boolean = false,
isExternal: Boolean = false,
isValue: Boolean = false,
isExpect: Boolean = false,
isFun: Boolean = false,
@@ -38,15 +38,15 @@ abstract class AbstractIrFactoryImpl : IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
name: Name,
kind: ClassKind,
visibility: DescriptorVisibility,
symbol: IrClassSymbol,
kind: ClassKind,
modality: Modality,
isExternal: Boolean,
isCompanion: Boolean,
isInner: Boolean,
isData: Boolean,
isExternal: Boolean,
isValue: Boolean,
isExpect: Boolean,
isFun: Boolean,
@@ -50,15 +50,15 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
name: Name,
kind: ClassKind,
visibility: DescriptorVisibility,
symbol: IrClassSymbol,
kind: ClassKind,
modality: Modality,
isExternal: Boolean,
isCompanion: Boolean,
isInner: Boolean,
isData: Boolean,
isExternal: Boolean,
isValue: Boolean,
isExpect: Boolean,
isFun: Boolean,
@@ -68,15 +68,15 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
startOffset,
endOffset,
origin,
symbol,
name,
kind,
visibility,
symbol,
kind,
modality,
isExternal,
isCompanion,
isInner,
isData,
isExternal,
isValue,
isExpect,
isFun,
@@ -24,15 +24,15 @@ class LazyIrFactory(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
name: Name,
kind: ClassKind,
visibility: DescriptorVisibility,
symbol: IrClassSymbol,
kind: ClassKind,
modality: Modality,
isExternal: Boolean,
isCompanion: Boolean,
isInner: Boolean,
isData: Boolean,
isExternal: Boolean,
isValue: Boolean,
isExpect: Boolean,
isFun: Boolean,
@@ -41,8 +41,22 @@ class LazyIrFactory(
symbol.owner
else
delegate.createClass(
startOffset, endOffset, origin, symbol, name, kind, visibility, modality,
isCompanion, isInner, isData, isExternal, isValue, isExpect, isFun, source
startOffset,
endOffset,
origin,
name,
visibility,
symbol,
kind,
modality,
isExternal,
isCompanion,
isInner,
isData,
isValue,
isExpect,
isFun,
source,
)
override fun createConstructor(
@@ -141,20 +141,21 @@ open class DeepCopyIrTreeWithSymbols(
override fun visitClass(declaration: IrClass): IrClass =
declaration.factory.createClass(
declaration.startOffset, declaration.endOffset,
mapDeclarationOrigin(declaration.origin),
symbolRemapper.getDeclaredClass(declaration.symbol),
symbolRenamer.getClassName(declaration.symbol),
declaration.kind,
declaration.visibility,
declaration.modality,
startOffset = declaration.startOffset,
endOffset = declaration.endOffset,
origin = mapDeclarationOrigin(declaration.origin),
name = symbolRenamer.getClassName(declaration.symbol),
visibility = declaration.visibility,
symbol = symbolRemapper.getDeclaredClass(declaration.symbol),
kind = declaration.kind,
modality = declaration.modality,
isExternal = declaration.isExternal,
isCompanion = declaration.isCompanion,
isInner = declaration.isInner,
isData = declaration.isData,
isExternal = declaration.isExternal,
isValue = declaration.isValue,
isExpect = declaration.isExpect,
isFun = declaration.isFun
isFun = declaration.isFun,
).apply {
transformAnnotations(declaration)
copyTypeParametersFrom(declaration)
@@ -37,7 +37,20 @@ fun IrFactory.createIrClassFromDescriptor(
visibility: DescriptorVisibility = descriptor.visibility,
modality: Modality = descriptor.modality
): IrClass = createClass(
startOffset, endOffset, origin, symbol, name, descriptor.kind, visibility, modality,
descriptor.isCompanionObject, descriptor.isInner, descriptor.isData, descriptor.isEffectivelyExternal(),
descriptor.isValueClass(), descriptor.isExpect, descriptor.isFun, descriptor.source
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = name,
visibility = visibility,
symbol = symbol,
kind = descriptor.kind,
modality = modality,
isExternal = descriptor.isEffectivelyExternal(),
isCompanion = descriptor.isCompanionObject,
isInner = descriptor.isInner,
isData = descriptor.isData,
isValue = descriptor.isValueClass(),
isExpect = descriptor.isExpect,
isFun = descriptor.isFun,
source = descriptor.source,
)