[IR] Reorder parameters in IrFactory#createFunction
This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
committed by
teamcity
parent
650b00e1b2
commit
7b77ec9930
+18
-6
@@ -172,12 +172,24 @@ inline fun IrProperty.addBackingField(builder: IrFieldBuilder.() -> Unit = {}):
|
||||
|
||||
@PublishedApi
|
||||
internal fun IrFactory.buildFunction(builder: IrFunctionBuilder): IrSimpleFunction = with(builder) {
|
||||
createFunction(
|
||||
startOffset, endOffset, origin,
|
||||
IrSimpleFunctionSymbolImpl(),
|
||||
name, visibility, modality, returnType,
|
||||
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride,
|
||||
containerSource,
|
||||
createSimpleFunction(
|
||||
startOffset = startOffset,
|
||||
endOffset = endOffset,
|
||||
origin = origin,
|
||||
name = name,
|
||||
visibility = visibility,
|
||||
isInline = isInline,
|
||||
isExpect = isExpect,
|
||||
returnType = returnType,
|
||||
modality = modality,
|
||||
symbol = IrSimpleFunctionSymbolImpl(),
|
||||
isTailrec = isTailrec,
|
||||
isSuspend = isSuspend,
|
||||
isOperator = isOperator,
|
||||
isInfix = isInfix,
|
||||
isExternal = isExternal,
|
||||
containerSource = containerSource,
|
||||
isFakeOverride = isFakeOverride,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -88,24 +88,24 @@ interface IrFactory {
|
||||
isExternal: Boolean,
|
||||
): IrField
|
||||
|
||||
fun createFunction(
|
||||
fun createSimpleFunction(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
name: Name,
|
||||
visibility: DescriptorVisibility,
|
||||
modality: Modality,
|
||||
returnType: IrType,
|
||||
isInline: Boolean,
|
||||
isExternal: Boolean,
|
||||
isExpect: Boolean,
|
||||
returnType: IrType,
|
||||
modality: Modality,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
isTailrec: Boolean,
|
||||
isSuspend: Boolean,
|
||||
isOperator: Boolean,
|
||||
isInfix: Boolean,
|
||||
isExpect: Boolean,
|
||||
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||
isExternal: Boolean,
|
||||
containerSource: DeserializedContainerSource? = null,
|
||||
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
||||
): IrSimpleFunction
|
||||
|
||||
fun createFunctionWithLateBinding(
|
||||
|
||||
@@ -107,24 +107,24 @@ abstract class AbstractIrFactoryImpl : IrFactory {
|
||||
): IrField =
|
||||
IrFieldImpl(startOffset, endOffset, origin, symbol, name, type, visibility, isFinal, isExternal, isStatic, factory = this)
|
||||
|
||||
override fun createFunction(
|
||||
override fun createSimpleFunction(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
name: Name,
|
||||
visibility: DescriptorVisibility,
|
||||
modality: Modality,
|
||||
returnType: IrType,
|
||||
isInline: Boolean,
|
||||
isExternal: Boolean,
|
||||
isExpect: Boolean,
|
||||
returnType: IrType,
|
||||
modality: Modality,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
isTailrec: Boolean,
|
||||
isSuspend: Boolean,
|
||||
isOperator: Boolean,
|
||||
isInfix: Boolean,
|
||||
isExpect: Boolean,
|
||||
isFakeOverride: Boolean,
|
||||
isExternal: Boolean,
|
||||
containerSource: DeserializedContainerSource?,
|
||||
isFakeOverride: Boolean,
|
||||
): IrSimpleFunction =
|
||||
IrFunctionImpl(
|
||||
startOffset, endOffset, origin, symbol, name, visibility, modality, returnType,
|
||||
|
||||
+15
-15
@@ -160,43 +160,43 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
|
||||
).register()
|
||||
}
|
||||
|
||||
override fun createFunction(
|
||||
override fun createSimpleFunction(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
name: Name,
|
||||
visibility: DescriptorVisibility,
|
||||
modality: Modality,
|
||||
returnType: IrType,
|
||||
isInline: Boolean,
|
||||
isExternal: Boolean,
|
||||
isExpect: Boolean,
|
||||
returnType: IrType,
|
||||
modality: Modality,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
isTailrec: Boolean,
|
||||
isSuspend: Boolean,
|
||||
isOperator: Boolean,
|
||||
isInfix: Boolean,
|
||||
isExpect: Boolean,
|
||||
isFakeOverride: Boolean,
|
||||
containerSource: DeserializedContainerSource?
|
||||
isExternal: Boolean,
|
||||
containerSource: DeserializedContainerSource?,
|
||||
isFakeOverride: Boolean
|
||||
): IrSimpleFunction {
|
||||
return super.createFunction(
|
||||
return super.createSimpleFunction(
|
||||
startOffset,
|
||||
endOffset,
|
||||
origin,
|
||||
symbol,
|
||||
name,
|
||||
visibility,
|
||||
modality,
|
||||
returnType,
|
||||
isInline,
|
||||
isExternal,
|
||||
isExpect,
|
||||
returnType,
|
||||
modality,
|
||||
symbol,
|
||||
isTailrec,
|
||||
isSuspend,
|
||||
isOperator,
|
||||
isInfix,
|
||||
isExpect,
|
||||
isFakeOverride,
|
||||
isExternal,
|
||||
containerSource,
|
||||
isFakeOverride,
|
||||
).register()
|
||||
}
|
||||
|
||||
|
||||
+11
-11
@@ -117,30 +117,30 @@ class LazyIrFactory(
|
||||
else
|
||||
delegate.createField(startOffset, endOffset, origin, name, visibility, symbol, type, isFinal, isStatic, isExternal)
|
||||
|
||||
override fun createFunction(
|
||||
override fun createSimpleFunction(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
origin: IrDeclarationOrigin,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
name: Name,
|
||||
visibility: DescriptorVisibility,
|
||||
modality: Modality,
|
||||
returnType: IrType,
|
||||
isInline: Boolean,
|
||||
isExternal: Boolean,
|
||||
isExpect: Boolean,
|
||||
returnType: IrType,
|
||||
modality: Modality,
|
||||
symbol: IrSimpleFunctionSymbol,
|
||||
isTailrec: Boolean,
|
||||
isSuspend: Boolean,
|
||||
isOperator: Boolean,
|
||||
isInfix: Boolean,
|
||||
isExpect: Boolean,
|
||||
isFakeOverride: Boolean,
|
||||
containerSource: DeserializedContainerSource?
|
||||
isExternal: Boolean,
|
||||
containerSource: DeserializedContainerSource?,
|
||||
isFakeOverride: Boolean
|
||||
): IrSimpleFunction = if (symbol.isBound)
|
||||
symbol.owner
|
||||
else
|
||||
delegate.createFunction(
|
||||
startOffset, endOffset, origin, symbol, name, visibility, modality, returnType,
|
||||
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride, containerSource
|
||||
delegate.createSimpleFunction(
|
||||
startOffset, endOffset, origin, name, visibility, isInline, isExpect, returnType,
|
||||
modality, symbol, isTailrec, isSuspend, isOperator, isInfix, isExternal, containerSource, isFakeOverride
|
||||
)
|
||||
|
||||
override fun createProperty(
|
||||
|
||||
@@ -171,23 +171,24 @@ open class DeepCopyIrTreeWithSymbols(
|
||||
}.copyAttributes(declaration)
|
||||
|
||||
override fun visitSimpleFunction(declaration: IrSimpleFunction): IrSimpleFunction =
|
||||
declaration.factory.createFunction(
|
||||
declaration.startOffset, declaration.endOffset,
|
||||
mapDeclarationOrigin(declaration.origin),
|
||||
symbolRemapper.getDeclaredFunction(declaration.symbol),
|
||||
symbolRenamer.getFunctionName(declaration.symbol),
|
||||
declaration.visibility,
|
||||
declaration.modality,
|
||||
declaration.returnType,
|
||||
declaration.factory.createSimpleFunction(
|
||||
startOffset = declaration.startOffset,
|
||||
endOffset = declaration.endOffset,
|
||||
origin = mapDeclarationOrigin(declaration.origin),
|
||||
name = symbolRenamer.getFunctionName(declaration.symbol),
|
||||
visibility = declaration.visibility,
|
||||
isInline = declaration.isInline,
|
||||
isExternal = declaration.isExternal,
|
||||
isExpect = declaration.isExpect,
|
||||
returnType = declaration.returnType,
|
||||
modality = declaration.modality,
|
||||
symbol = symbolRemapper.getDeclaredFunction(declaration.symbol),
|
||||
isTailrec = declaration.isTailrec,
|
||||
isSuspend = declaration.isSuspend,
|
||||
isOperator = declaration.isOperator,
|
||||
isInfix = declaration.isInfix,
|
||||
isExpect = declaration.isExpect,
|
||||
isFakeOverride = declaration.isFakeOverride,
|
||||
isExternal = declaration.isExternal,
|
||||
containerSource = declaration.containerSource,
|
||||
isFakeOverride = declaration.isFakeOverride,
|
||||
).apply {
|
||||
overriddenSymbols = declaration.overriddenSymbols.memoryOptimizedMap {
|
||||
symbolRemapper.getReferencedFunction(it) as IrSimpleFunctionSymbol
|
||||
|
||||
@@ -1188,23 +1188,24 @@ fun IrFactory.createStaticFunctionWithReceivers(
|
||||
typeParametersFromContext: List<IrTypeParameter> = listOf(),
|
||||
remapMultiFieldValueClassStructure: (IrFunction, IrFunction, Map<IrValueParameter, IrValueParameter>?) -> Unit
|
||||
): IrSimpleFunction {
|
||||
return createFunction(
|
||||
oldFunction.startOffset, oldFunction.endOffset,
|
||||
origin,
|
||||
IrSimpleFunctionSymbolImpl(),
|
||||
name,
|
||||
visibility,
|
||||
modality,
|
||||
oldFunction.returnType,
|
||||
return createSimpleFunction(
|
||||
startOffset = oldFunction.startOffset,
|
||||
endOffset = oldFunction.endOffset,
|
||||
origin = origin,
|
||||
name = name,
|
||||
visibility = visibility,
|
||||
isInline = oldFunction.isInline,
|
||||
isExternal = false,
|
||||
isExpect = oldFunction.isExpect,
|
||||
returnType = oldFunction.returnType,
|
||||
modality = modality,
|
||||
symbol = IrSimpleFunctionSymbolImpl(),
|
||||
isTailrec = false,
|
||||
isSuspend = oldFunction.isSuspend,
|
||||
isExpect = oldFunction.isExpect,
|
||||
isFakeOverride = isFakeOverride,
|
||||
isOperator = oldFunction is IrSimpleFunction && oldFunction.isOperator,
|
||||
isInfix = oldFunction is IrSimpleFunction && oldFunction.isInfix,
|
||||
isExternal = false,
|
||||
containerSource = oldFunction.containerSource,
|
||||
isFakeOverride = isFakeOverride,
|
||||
).apply {
|
||||
parent = irParent
|
||||
|
||||
|
||||
@@ -24,18 +24,22 @@ fun SymbolTable.declareSimpleFunctionWithOverrides(
|
||||
) =
|
||||
declareSimpleFunction(descriptor) {
|
||||
with(descriptor) {
|
||||
irFactory.createFunction(
|
||||
startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(this),
|
||||
visibility,
|
||||
modality,
|
||||
IrUninitializedType,
|
||||
isInline,
|
||||
isEffectivelyExternal(),
|
||||
isTailrec,
|
||||
isSuspend,
|
||||
isOperator,
|
||||
isInfix,
|
||||
isExpect,
|
||||
irFactory.createSimpleFunction(
|
||||
startOffset = startOffset,
|
||||
endOffset = endOffset,
|
||||
origin = origin,
|
||||
name = nameProvider.nameForDeclaration(this),
|
||||
visibility = visibility,
|
||||
isInline = isInline,
|
||||
isExpect = isExpect,
|
||||
returnType = IrUninitializedType,
|
||||
modality = modality,
|
||||
symbol = it,
|
||||
isTailrec = isTailrec,
|
||||
isSuspend = isSuspend,
|
||||
isOperator = isOperator,
|
||||
isInfix = isInfix,
|
||||
isExternal = isEffectivelyExternal(),
|
||||
isFakeOverride = descriptor.kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE
|
||||
).also { declaration ->
|
||||
declaration.metadata = DescriptorMetadataSource.Function(this)
|
||||
|
||||
Reference in New Issue
Block a user