[IR] Reorder parameters in IrFactory#createEnumEntry

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-13 19:28:10 +02:00
committed by Space Team
parent 685eee38ac
commit c2fde1a915
10 changed files with 22 additions and 17 deletions
@@ -553,7 +553,11 @@ class Fir2IrClassifierStorage(
val result = declareIrEnumEntry(signature) { symbol ->
val origin = enumEntry.computeIrOrigin(predefinedOrigin)
irFactory.createEnumEntry(
startOffset, endOffset, origin, symbol, enumEntry.name
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = enumEntry.name,
symbol = symbol,
).apply {
declarationStorage.enterScope(this)
if (irParent != null) {
@@ -107,7 +107,7 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor, symbol: IrEnumEntrySymbol
): IrEnumEntry {
// TODO: corresponging class?
val irEntry = irFactory.createEnumEntry(startOffset, endOffset, origin, symbol, descriptor.name)
val irEntry = irFactory.createEnumEntry(startOffset, endOffset, origin, descriptor.name, symbol)
return irEntry
}
@@ -65,8 +65,8 @@ interface IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrEnumEntrySymbol,
name: Name,
symbol: IrEnumEntrySymbol,
): IrEnumEntry
fun createErrorDeclaration(
@@ -81,8 +81,8 @@ abstract class AbstractIrFactoryImpl : IrFactory {
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrEnumEntrySymbol,
name: Name,
symbol: IrEnumEntrySymbol,
): IrEnumEntry =
IrEnumEntryImpl(startOffset, endOffset, origin, symbol, name, factory = this)
@@ -118,15 +118,15 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrEnumEntrySymbol,
name: Name
name: Name,
symbol: IrEnumEntrySymbol
): IrEnumEntry {
return super.createEnumEntry(
startOffset,
endOffset,
origin,
symbol,
name,
symbol,
).register()
}
@@ -70,12 +70,12 @@ class LazyIrFactory(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrEnumEntrySymbol,
name: Name
name: Name,
symbol: IrEnumEntrySymbol
): IrEnumEntry = if (symbol.isBound)
symbol.owner
else
delegate.createEnumEntry(startOffset, endOffset, origin, symbol, name)
delegate.createEnumEntry(startOffset, endOffset, origin, name, symbol)
override fun createField(
startOffset: Int,
@@ -295,10 +295,11 @@ open class DeepCopyIrTreeWithSymbols(
override fun visitEnumEntry(declaration: IrEnumEntry): IrEnumEntry =
declaration.factory.createEnumEntry(
declaration.startOffset, declaration.endOffset,
mapDeclarationOrigin(declaration.origin),
symbolRemapper.getDeclaredEnumEntry(declaration.symbol),
symbolRenamer.getEnumEntryName(declaration.symbol)
startOffset = declaration.startOffset,
endOffset = declaration.endOffset,
origin = mapDeclarationOrigin(declaration.origin),
name = symbolRenamer.getEnumEntryName(declaration.symbol),
symbol = symbolRemapper.getDeclaredEnumEntry(declaration.symbol),
).apply {
transformAnnotations(declaration)
correspondingClass = declaration.correspondingClass?.transform()
@@ -654,7 +654,7 @@ open class SymbolTable(
fun declareEnumEntry(
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor,
factory: (IrEnumEntrySymbol) -> IrEnumEntry = {
irFactory.createEnumEntry(startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor))
irFactory.createEnumEntry(startOffset, endOffset, origin, nameProvider.nameForDeclaration(descriptor), it)
}
): IrEnumEntry =
enumEntrySymbolTable.declare(
@@ -139,8 +139,8 @@ internal class MissingDeclarationStubGenerator(private val builtIns: IrBuiltIns)
startOffset = UNDEFINED_OFFSET,
endOffset = UNDEFINED_OFFSET,
origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION,
name = symbol.guessName(),
symbol = symbol,
name = symbol.guessName()
).setCommonParent()
}
@@ -629,7 +629,7 @@ class IrDeclarationDeserializer(
private fun deserializeIrEnumEntry(proto: ProtoEnumEntry, setParent: Boolean = true): IrEnumEntry =
withDeserializedIrDeclarationBase(proto.base, setParent) { symbol, uniqId, startOffset, endOffset, origin, _ ->
symbolTable.declareEnumEntry(uniqId, { symbol.checkSymbolType(ENUM_ENTRY_SYMBOL) }) {
irFactory.createEnumEntry(startOffset, endOffset, origin, it, deserializeName(proto.name))
irFactory.createEnumEntry(startOffset, endOffset, origin, deserializeName(proto.name), it)
}.apply {
if (proto.hasCorrespondingClass())
correspondingClass = deserializeIrClass(proto.correspondingClass)