[IR] Reorder parameters in IrFactory#createFunctionWithLateBinding

This is to prepare for IrFactory auto-generation (KT-59308).
This commit is contained in:
Sergej Jaskiewicz
2023-06-16 15:49:13 +02:00
committed by Space Team
parent 3828552a1c
commit f061215ee9
4 changed files with 103 additions and 30 deletions
@@ -114,16 +114,17 @@ interface IrFactory {
origin: IrDeclarationOrigin,
name: Name,
visibility: DescriptorVisibility,
modality: Modality,
returnType: IrType,
isInline: Boolean,
isExternal: Boolean,
isExpect: Boolean,
returnType: IrType,
modality: Modality,
isTailrec: Boolean,
isSuspend: Boolean,
isOperator: Boolean,
isInfix: Boolean,
isExpect: Boolean,
): IrSimpleFunction
isExternal: Boolean = false,
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
): IrFunctionWithLateBinding
fun createLocalDelegatedProperty(
startOffset: Int,
@@ -463,6 +464,61 @@ interface IrFactory {
isExternal,
)
@Deprecated(
message = "The method's parameters were reordered." +
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
replaceWith = ReplaceWith(
"""createFunctionWithLateBinding(
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = name,
visibility = visibility,
isInline = isInline,
isExpect = isExpect,
returnType = returnType,
modality = modality,
isTailrec = isTailrec,
isSuspend = isSuspend,
isOperator = isOperator,
isInfix = isInfix,
isExternal = isExternal,
)""",
),
level = DeprecationLevel.HIDDEN,
)
fun createFunctionWithLateBinding(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
name: Name,
visibility: DescriptorVisibility,
modality: Modality,
returnType: IrType,
isInline: Boolean,
isExternal: Boolean,
isTailrec: Boolean,
isSuspend: Boolean,
isOperator: Boolean,
isInfix: Boolean,
isExpect: Boolean,
): IrSimpleFunction = createFunctionWithLateBinding(
startOffset,
endOffset,
origin,
name,
visibility,
isInline,
isExpect,
returnType,
modality,
isTailrec,
isSuspend,
isOperator,
isInfix,
isExternal,
)
@Deprecated(
message = "The method's parameters were reordered." +
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
@@ -138,19 +138,33 @@ abstract class AbstractIrFactoryImpl : IrFactory {
origin: IrDeclarationOrigin,
name: Name,
visibility: DescriptorVisibility,
modality: Modality,
returnType: IrType,
isInline: Boolean,
isExternal: Boolean,
isExpect: Boolean,
returnType: IrType,
modality: Modality,
isTailrec: Boolean,
isSuspend: Boolean,
isOperator: Boolean,
isInfix: Boolean,
isExpect: Boolean,
): IrSimpleFunction =
isExternal: Boolean,
isFakeOverride: Boolean,
): IrFunctionWithLateBinding =
IrFunctionWithLateBindingImpl(
startOffset, endOffset, origin, name, visibility, modality, returnType,
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
startOffset = startOffset,
endOffset = endOffset,
origin = origin,
name = name,
visibility = visibility,
modality = modality,
returnType = returnType,
isInline = isInline,
isExternal = isExternal,
isTailrec = isTailrec,
isSuspend = isSuspend,
isOperator = isOperator,
isInfix = isInfix,
isExpect = isExpect,
isFakeOverride = isFakeOverride,
factory = this
)
@@ -206,31 +206,33 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst
origin: IrDeclarationOrigin,
name: Name,
visibility: DescriptorVisibility,
modality: Modality,
returnType: IrType,
isInline: Boolean,
isExternal: Boolean,
isExpect: Boolean,
returnType: IrType,
modality: Modality,
isTailrec: Boolean,
isSuspend: Boolean,
isOperator: Boolean,
isInfix: Boolean,
isExpect: Boolean
): IrSimpleFunction {
isExternal: Boolean,
isFakeOverride: Boolean,
): IrFunctionWithLateBinding {
return super.createFunctionWithLateBinding(
startOffset,
endOffset,
origin,
name,
visibility,
modality,
returnType,
isInline,
isExternal,
isExpect,
returnType,
modality,
isTailrec,
isSuspend,
isOperator,
isInfix,
isExpect,
isExternal,
isFakeOverride,
).register()
}
@@ -22,19 +22,20 @@ class FakeOverrideCopier(
val customization = unimplementedOverridesStrategy.computeCustomization(declaration, parent)
return declaration.factory.createFunctionWithLateBinding(
declaration.startOffset, declaration.endOffset,
customization.origin ?: IrDeclarationOrigin.FAKE_OVERRIDE,
symbolRenamer.getFunctionName(declaration.symbol),
declaration.visibility,
customization.modality ?: declaration.modality,
declaration.returnType,
startOffset = declaration.startOffset,
endOffset = declaration.endOffset,
origin = customization.origin ?: IrDeclarationOrigin.FAKE_OVERRIDE,
name = symbolRenamer.getFunctionName(declaration.symbol),
visibility = declaration.visibility,
isInline = declaration.isInline,
isExternal = makeExternal,
isExpect = declaration.isExpect,
returnType = declaration.returnType,
modality = customization.modality ?: declaration.modality,
isTailrec = declaration.isTailrec,
isSuspend = declaration.isSuspend,
isExpect = declaration.isExpect,
isOperator = declaration.isOperator,
isInfix = declaration.isInfix
isInfix = declaration.isInfix,
isExternal = makeExternal,
).apply {
transformAnnotations(declaration)
copyTypeParametersFrom(declaration)