[IR] Reorder parameters in IrFactory#createTypeAlias
This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
committed by
Space Team
parent
26a479918b
commit
b1f7b5e982
@@ -311,10 +311,14 @@ class Fir2IrClassifierStorage(
|
|||||||
declareIrTypeAlias(signature) { symbol ->
|
declareIrTypeAlias(signature) { symbol ->
|
||||||
preCacheTypeParameters(typeAlias, symbol)
|
preCacheTypeParameters(typeAlias, symbol)
|
||||||
val irTypeAlias = irFactory.createTypeAlias(
|
val irTypeAlias = irFactory.createTypeAlias(
|
||||||
startOffset, endOffset, symbol,
|
startOffset = startOffset,
|
||||||
typeAlias.name, components.visibilityConverter.convertToDescriptorVisibility(typeAlias.visibility),
|
endOffset = endOffset,
|
||||||
typeAlias.expandedTypeRef.toIrType(),
|
origin = IrDeclarationOrigin.DEFINED,
|
||||||
typeAlias.isActual, IrDeclarationOrigin.DEFINED
|
name = typeAlias.name,
|
||||||
|
visibility = components.visibilityConverter.convertToDescriptorVisibility(typeAlias.visibility),
|
||||||
|
symbol = symbol,
|
||||||
|
isActual = typeAlias.isActual,
|
||||||
|
expandedType = typeAlias.expandedTypeRef.toIrType(),
|
||||||
).apply {
|
).apply {
|
||||||
this.parent = parent
|
this.parent = parent
|
||||||
setTypeParameters(typeAlias)
|
setTypeParameters(typeAlias)
|
||||||
|
|||||||
+8
-2
@@ -111,8 +111,14 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator {
|
|||||||
with(getOrFail(BindingContext.TYPE_ALIAS, ktTypeAlias)) {
|
with(getOrFail(BindingContext.TYPE_ALIAS, ktTypeAlias)) {
|
||||||
context.symbolTable.declareTypeAlias(this) { symbol ->
|
context.symbolTable.declareTypeAlias(this) { symbol ->
|
||||||
context.irFactory.createTypeAlias(
|
context.irFactory.createTypeAlias(
|
||||||
ktTypeAlias.startOffsetSkippingComments, ktTypeAlias.endOffset, symbol,
|
startOffset = ktTypeAlias.startOffsetSkippingComments,
|
||||||
name, visibility, expandedType.toIrType(), isActual, IrDeclarationOrigin.DEFINED
|
endOffset = ktTypeAlias.endOffset,
|
||||||
|
origin = IrDeclarationOrigin.DEFINED,
|
||||||
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = symbol,
|
||||||
|
isActual = isActual,
|
||||||
|
expandedType = expandedType.toIrType()
|
||||||
)
|
)
|
||||||
}.also {
|
}.also {
|
||||||
generateGlobalTypeParametersDeclarations(it, declaredTypeParameters)
|
generateGlobalTypeParametersDeclarations(it, declaredTypeParameters)
|
||||||
|
|||||||
+8
-1
@@ -120,7 +120,14 @@ internal class StandaloneDeclarationGenerator(private val context: GeneratorCont
|
|||||||
symbol: IrTypeAliasSymbol
|
symbol: IrTypeAliasSymbol
|
||||||
): IrTypeAlias = with(descriptor) {
|
): IrTypeAlias = with(descriptor) {
|
||||||
irFactory.createTypeAlias(
|
irFactory.createTypeAlias(
|
||||||
startOffset, endOffset, symbol, name, visibility, expandedType.toIrType(), isActual, origin
|
startOffset = startOffset,
|
||||||
|
endOffset = endOffset,
|
||||||
|
origin = origin,
|
||||||
|
name = name,
|
||||||
|
visibility = visibility,
|
||||||
|
symbol = symbol,
|
||||||
|
isActual = isActual,
|
||||||
|
expandedType = expandedType.toIrType()
|
||||||
).also {
|
).also {
|
||||||
generateGlobalTypeParametersDeclarations(it, declaredTypeParameters)
|
generateGlobalTypeParametersDeclarations(it, declaredTypeParameters)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,12 +171,12 @@ interface IrFactory {
|
|||||||
fun createTypeAlias(
|
fun createTypeAlias(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
symbol: IrTypeAliasSymbol,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
name: Name,
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
expandedType: IrType,
|
symbol: IrTypeAliasSymbol,
|
||||||
isActual: Boolean,
|
isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin,
|
expandedType: IrType,
|
||||||
): IrTypeAlias
|
): IrTypeAlias
|
||||||
|
|
||||||
fun createTypeParameter(
|
fun createTypeParameter(
|
||||||
|
|||||||
@@ -211,12 +211,12 @@ abstract class AbstractIrFactoryImpl : IrFactory {
|
|||||||
override fun createTypeAlias(
|
override fun createTypeAlias(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
symbol: IrTypeAliasSymbol,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
name: Name,
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
expandedType: IrType,
|
symbol: IrTypeAliasSymbol,
|
||||||
isActual: Boolean,
|
isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin,
|
expandedType: IrType,
|
||||||
): IrTypeAlias =
|
): IrTypeAlias =
|
||||||
IrTypeAliasImpl(startOffset, endOffset, symbol, name, visibility, expandedType, isActual, origin, factory = this)
|
IrTypeAliasImpl(startOffset, endOffset, symbol, name, visibility, expandedType, isActual, origin, factory = this)
|
||||||
|
|
||||||
|
|||||||
+6
-6
@@ -323,22 +323,22 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
|
|||||||
override fun createTypeAlias(
|
override fun createTypeAlias(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
symbol: IrTypeAliasSymbol,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
name: Name,
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
expandedType: IrType,
|
symbol: IrTypeAliasSymbol,
|
||||||
isActual: Boolean,
|
isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin
|
expandedType: IrType
|
||||||
): IrTypeAlias {
|
): IrTypeAlias {
|
||||||
return super.createTypeAlias(
|
return super.createTypeAlias(
|
||||||
startOffset,
|
startOffset,
|
||||||
endOffset,
|
endOffset,
|
||||||
symbol,
|
origin,
|
||||||
name,
|
name,
|
||||||
visibility,
|
visibility,
|
||||||
expandedType,
|
symbol,
|
||||||
isActual,
|
isActual,
|
||||||
origin,
|
expandedType,
|
||||||
).register()
|
).register()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -170,16 +170,16 @@ class LazyIrFactory(
|
|||||||
override fun createTypeAlias(
|
override fun createTypeAlias(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
symbol: IrTypeAliasSymbol,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
name: Name,
|
||||||
visibility: DescriptorVisibility,
|
visibility: DescriptorVisibility,
|
||||||
expandedType: IrType,
|
symbol: IrTypeAliasSymbol,
|
||||||
isActual: Boolean,
|
isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin
|
expandedType: IrType
|
||||||
): IrTypeAlias = if (symbol.isBound)
|
): IrTypeAlias = if (symbol.isBound)
|
||||||
symbol.owner
|
symbol.owner
|
||||||
else
|
else
|
||||||
delegate.createTypeAlias(startOffset, endOffset, symbol, name, visibility, expandedType, isActual, origin)
|
delegate.createTypeAlias(startOffset, endOffset, origin, name, visibility, symbol, isActual, expandedType)
|
||||||
|
|
||||||
override fun createTypeParameter(
|
override fun createTypeParameter(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
|
|||||||
@@ -387,13 +387,14 @@ open class DeepCopyIrTreeWithSymbols(
|
|||||||
|
|
||||||
override fun visitTypeAlias(declaration: IrTypeAlias): IrTypeAlias =
|
override fun visitTypeAlias(declaration: IrTypeAlias): IrTypeAlias =
|
||||||
declaration.factory.createTypeAlias(
|
declaration.factory.createTypeAlias(
|
||||||
declaration.startOffset, declaration.endOffset,
|
startOffset = declaration.startOffset,
|
||||||
symbolRemapper.getDeclaredTypeAlias(declaration.symbol),
|
endOffset = declaration.endOffset,
|
||||||
symbolRenamer.getTypeAliasName(declaration.symbol),
|
origin = mapDeclarationOrigin(declaration.origin),
|
||||||
declaration.visibility,
|
name = symbolRenamer.getTypeAliasName(declaration.symbol),
|
||||||
declaration.expandedType.remapType(),
|
visibility = declaration.visibility,
|
||||||
declaration.isActual,
|
symbol = symbolRemapper.getDeclaredTypeAlias(declaration.symbol),
|
||||||
mapDeclarationOrigin(declaration.origin)
|
isActual = declaration.isActual,
|
||||||
|
expandedType = declaration.expandedType.remapType(),
|
||||||
).apply {
|
).apply {
|
||||||
transformAnnotations(declaration)
|
transformAnnotations(declaration)
|
||||||
copyTypeParametersFrom(declaration)
|
copyTypeParametersFrom(declaration)
|
||||||
|
|||||||
+3
-3
@@ -148,12 +148,12 @@ internal class MissingDeclarationStubGenerator(private val builtIns: IrBuiltIns)
|
|||||||
return builtIns.irFactory.createTypeAlias(
|
return builtIns.irFactory.createTypeAlias(
|
||||||
startOffset = UNDEFINED_OFFSET,
|
startOffset = UNDEFINED_OFFSET,
|
||||||
endOffset = UNDEFINED_OFFSET,
|
endOffset = UNDEFINED_OFFSET,
|
||||||
symbol = symbol,
|
origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION,
|
||||||
name = symbol.guessName(),
|
name = symbol.guessName(),
|
||||||
visibility = DescriptorVisibilities.DEFAULT_VISIBILITY,
|
visibility = DescriptorVisibilities.DEFAULT_VISIBILITY,
|
||||||
expandedType = builtIns.nothingType,
|
symbol = symbol,
|
||||||
isActual = true,
|
isActual = true,
|
||||||
origin = PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION,
|
expandedType = builtIns.nothingType,
|
||||||
).setCommonParent()
|
).setCommonParent()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-7
@@ -433,13 +433,14 @@ class IrDeclarationDeserializer(
|
|||||||
val flags = TypeAliasFlags.decode(fcode)
|
val flags = TypeAliasFlags.decode(fcode)
|
||||||
val nameType = BinaryNameAndType.decode(proto.nameType)
|
val nameType = BinaryNameAndType.decode(proto.nameType)
|
||||||
irFactory.createTypeAlias(
|
irFactory.createTypeAlias(
|
||||||
startOffset, endOffset,
|
startOffset = startOffset,
|
||||||
it,
|
endOffset = endOffset,
|
||||||
deserializeName(nameType.nameIndex),
|
origin = origin,
|
||||||
flags.visibility,
|
name = deserializeName(nameType.nameIndex),
|
||||||
deserializeIrType(nameType.typeIndex),
|
visibility = flags.visibility,
|
||||||
flags.isActual,
|
symbol = it,
|
||||||
origin
|
isActual = flags.isActual,
|
||||||
|
expandedType = deserializeIrType(nameType.typeIndex),
|
||||||
)
|
)
|
||||||
}.usingParent {
|
}.usingParent {
|
||||||
typeParameters = deserializeTypeParameters(proto.typeParameterList, true)
|
typeParameters = deserializeTypeParameters(proto.typeParameterList, true)
|
||||||
|
|||||||
Reference in New Issue
Block a user