[IR] Delete deprecated IrFactory methods
We no longer care about binary compatibility wrt the Compose IDE plugin, see the comment in KTIJ-26314. ^KTIJ-26314 Fixed
This commit is contained in:
committed by
Space Team
parent
7ab691fcef
commit
be1d8e2894
@@ -9,7 +9,6 @@
|
|||||||
package org.jetbrains.kotlin.ir.declarations
|
package org.jetbrains.kotlin.ir.declarations
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
@@ -218,422 +217,4 @@ interface IrFactory {
|
|||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
expression: IrExpression,
|
expression: IrExpression,
|
||||||
): IrExpressionBody
|
): IrExpressionBody
|
||||||
|
|
||||||
@Deprecated(
|
|
||||||
message = "This method was moved to an extension." +
|
|
||||||
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createBlockBody(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
initializer: IrBlockBody.() -> Unit,
|
|
||||||
): IrBlockBody = createBlockBody(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
initializer,
|
|
||||||
)
|
|
||||||
|
|
||||||
@Deprecated(
|
|
||||||
message = "This method was moved to an extension." +
|
|
||||||
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createBlockBody(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
statements: List<IrStatement>,
|
|
||||||
): IrBlockBody = createBlockBody(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
statements,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createClass(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrClassSymbol,
|
|
||||||
name: Name,
|
|
||||||
kind: ClassKind,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
modality: Modality,
|
|
||||||
isCompanion: Boolean = false,
|
|
||||||
isInner: Boolean = false,
|
|
||||||
isData: Boolean = false,
|
|
||||||
isExternal: Boolean = false,
|
|
||||||
isValue: Boolean = false,
|
|
||||||
isExpect: Boolean = false,
|
|
||||||
isFun: Boolean = false,
|
|
||||||
source: SourceElement = SourceElement.NO_SOURCE,
|
|
||||||
): IrClass = createClass(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
symbol,
|
|
||||||
kind,
|
|
||||||
modality,
|
|
||||||
isExternal,
|
|
||||||
isCompanion,
|
|
||||||
isInner,
|
|
||||||
isData,
|
|
||||||
isValue,
|
|
||||||
isExpect,
|
|
||||||
isFun,
|
|
||||||
false,
|
|
||||||
source,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createConstructor(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrConstructorSymbol,
|
|
||||||
name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
returnType: IrType,
|
|
||||||
isInline: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
isPrimary: Boolean,
|
|
||||||
isExpect: Boolean,
|
|
||||||
containerSource: DeserializedContainerSource? = null,
|
|
||||||
): IrConstructor = createConstructor(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
isInline,
|
|
||||||
isExpect,
|
|
||||||
returnType,
|
|
||||||
symbol,
|
|
||||||
isPrimary,
|
|
||||||
isExternal,
|
|
||||||
containerSource,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createEnumEntry(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrEnumEntrySymbol,
|
|
||||||
name: Name,
|
|
||||||
): IrEnumEntry = createEnumEntry(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
symbol,
|
|
||||||
)
|
|
||||||
|
|
||||||
@Deprecated(
|
|
||||||
message = "This method was moved to an extension." +
|
|
||||||
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createExpressionBody(expression: IrExpression): IrExpressionBody = createExpressionBody(expression)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createField(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrFieldSymbol,
|
|
||||||
name: Name,
|
|
||||||
type: IrType,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
isFinal: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
isStatic: Boolean,
|
|
||||||
): IrField = createField(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
symbol,
|
|
||||||
type,
|
|
||||||
isFinal,
|
|
||||||
isStatic,
|
|
||||||
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).",
|
|
||||||
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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createLocalDelegatedProperty(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrLocalDelegatedPropertySymbol,
|
|
||||||
name: Name,
|
|
||||||
type: IrType,
|
|
||||||
isVar: Boolean,
|
|
||||||
): IrLocalDelegatedProperty = createLocalDelegatedProperty(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
symbol,
|
|
||||||
type,
|
|
||||||
isVar,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createProperty(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrPropertySymbol,
|
|
||||||
name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
modality: Modality,
|
|
||||||
isVar: Boolean,
|
|
||||||
isConst: Boolean,
|
|
||||||
isLateinit: Boolean,
|
|
||||||
isDelegated: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
isExpect: Boolean = false,
|
|
||||||
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
|
||||||
containerSource: DeserializedContainerSource? = null,
|
|
||||||
): IrProperty = createProperty(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
modality,
|
|
||||||
symbol,
|
|
||||||
isVar,
|
|
||||||
isConst,
|
|
||||||
isLateinit,
|
|
||||||
isDelegated,
|
|
||||||
isExternal,
|
|
||||||
containerSource,
|
|
||||||
isExpect,
|
|
||||||
isFakeOverride,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createPropertyWithLateBinding(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
modality: Modality,
|
|
||||||
isVar: Boolean,
|
|
||||||
isConst: Boolean,
|
|
||||||
isLateinit: Boolean,
|
|
||||||
isDelegated: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
isExpect: Boolean,
|
|
||||||
): IrProperty = createPropertyWithLateBinding(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
modality,
|
|
||||||
isVar,
|
|
||||||
isConst,
|
|
||||||
isLateinit,
|
|
||||||
isDelegated,
|
|
||||||
isExternal,
|
|
||||||
isExpect,
|
|
||||||
)
|
|
||||||
|
|
||||||
@Deprecated(
|
|
||||||
message = "The method has been renamed, and its parameters were reordered." +
|
|
||||||
" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createFunction(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrSimpleFunctionSymbol,
|
|
||||||
name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
modality: Modality,
|
|
||||||
returnType: IrType,
|
|
||||||
isInline: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
isTailrec: Boolean,
|
|
||||||
isSuspend: Boolean,
|
|
||||||
isOperator: Boolean,
|
|
||||||
isInfix: Boolean,
|
|
||||||
isExpect: Boolean,
|
|
||||||
isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
|
|
||||||
containerSource: DeserializedContainerSource? = null,
|
|
||||||
): IrSimpleFunction = createSimpleFunction(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
isInline,
|
|
||||||
isExpect,
|
|
||||||
returnType,
|
|
||||||
modality,
|
|
||||||
symbol,
|
|
||||||
isTailrec,
|
|
||||||
isSuspend,
|
|
||||||
isOperator,
|
|
||||||
isInfix,
|
|
||||||
isExternal,
|
|
||||||
containerSource,
|
|
||||||
isFakeOverride,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createTypeAlias(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
symbol: IrTypeAliasSymbol,
|
|
||||||
name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
expandedType: IrType,
|
|
||||||
isActual: Boolean,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
): IrTypeAlias = createTypeAlias(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
visibility,
|
|
||||||
symbol,
|
|
||||||
isActual,
|
|
||||||
expandedType,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createTypeParameter(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrTypeParameterSymbol,
|
|
||||||
name: Name,
|
|
||||||
index: Int,
|
|
||||||
isReified: Boolean,
|
|
||||||
variance: Variance,
|
|
||||||
): IrTypeParameter = createTypeParameter(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
symbol,
|
|
||||||
variance,
|
|
||||||
index,
|
|
||||||
isReified,
|
|
||||||
)
|
|
||||||
|
|
||||||
@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).",
|
|
||||||
level = DeprecationLevel.HIDDEN,
|
|
||||||
)
|
|
||||||
fun createValueParameter(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
symbol: IrValueParameterSymbol,
|
|
||||||
name: Name,
|
|
||||||
index: Int,
|
|
||||||
type: IrType,
|
|
||||||
varargElementType: IrType?,
|
|
||||||
isCrossinline: Boolean,
|
|
||||||
isNoinline: Boolean,
|
|
||||||
isHidden: Boolean,
|
|
||||||
isAssignable: Boolean,
|
|
||||||
): IrValueParameter = createValueParameter(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
origin,
|
|
||||||
name,
|
|
||||||
type,
|
|
||||||
isAssignable,
|
|
||||||
symbol,
|
|
||||||
index,
|
|
||||||
varargElementType,
|
|
||||||
isCrossinline,
|
|
||||||
isNoinline,
|
|
||||||
isHidden,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-281
@@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.generator.print
|
package org.jetbrains.kotlin.ir.generator.print
|
||||||
|
|
||||||
import org.jetbrains.kotlin.generators.tree.*
|
import org.jetbrains.kotlin.generators.tree.ImportCollector
|
||||||
import org.jetbrains.kotlin.generators.tree.printer.FunctionParameter
|
import org.jetbrains.kotlin.generators.tree.printer.FunctionParameter
|
||||||
import org.jetbrains.kotlin.generators.tree.printer.GeneratedFile
|
import org.jetbrains.kotlin.generators.tree.printer.GeneratedFile
|
||||||
import org.jetbrains.kotlin.generators.tree.printer.printFunctionDeclaration
|
import org.jetbrains.kotlin.generators.tree.printer.printFunctionDeclaration
|
||||||
import org.jetbrains.kotlin.generators.tree.printer.printGeneratedType
|
import org.jetbrains.kotlin.generators.tree.printer.printGeneratedType
|
||||||
import org.jetbrains.kotlin.ir.generator.IrTree
|
import org.jetbrains.kotlin.generators.tree.render
|
||||||
import org.jetbrains.kotlin.ir.generator.TREE_GENERATOR_README
|
import org.jetbrains.kotlin.ir.generator.TREE_GENERATOR_README
|
||||||
import org.jetbrains.kotlin.ir.generator.irFactoryType
|
import org.jetbrains.kotlin.ir.generator.irFactoryType
|
||||||
import org.jetbrains.kotlin.ir.generator.model.Element
|
import org.jetbrains.kotlin.ir.generator.model.Element
|
||||||
@@ -38,215 +38,6 @@ internal fun printFactory(generationPath: File, model: Model): GeneratedFile = p
|
|||||||
.map(::FactoryMethod)
|
.map(::FactoryMethod)
|
||||||
|
|
||||||
factoryMethods.forEach { printFactoryMethod(it) }
|
factoryMethods.forEach { printFactoryMethod(it) }
|
||||||
|
|
||||||
fun replacement(name: String) = factoryMethods.find { it.name == name } ?: error("Method '$name' not found")
|
|
||||||
|
|
||||||
addDeprecatedFunction(
|
|
||||||
replacement("createBlockBody")
|
|
||||||
.addParameter(
|
|
||||||
"initializer",
|
|
||||||
Lambda(receiver = IrTree.blockBody, returnType = StandardTypes.unit),
|
|
||||||
),
|
|
||||||
) {
|
|
||||||
deprecationMessage = "This method was moved to an extension."
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("initializer")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(
|
|
||||||
replacement("createBlockBody")
|
|
||||||
.addParameter(
|
|
||||||
"statements",
|
|
||||||
StandardTypes.list.withArgs(IrTree.statement),
|
|
||||||
),
|
|
||||||
) {
|
|
||||||
deprecationMessage = "This method was moved to an extension."
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("statements")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createClass")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("kind")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("modality")
|
|
||||||
parameter("isCompanion")
|
|
||||||
parameter("isInner")
|
|
||||||
parameter("isData")
|
|
||||||
parameter("isExternal")
|
|
||||||
parameter("isValue")
|
|
||||||
parameter("isExpect")
|
|
||||||
parameter("isFun")
|
|
||||||
parameter("source")
|
|
||||||
defaultValue["hasEnumEntries"] = "false"
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createConstructor")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("returnType")
|
|
||||||
parameter("isInline")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isPrimary")
|
|
||||||
parameter("isExpect")
|
|
||||||
parameter("containerSource")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createEnumEntry")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createExpressionBody")) {
|
|
||||||
deprecationMessage = "This method was moved to an extension."
|
|
||||||
parameter("expression")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createField")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("type")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("isFinal")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isStatic")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createFunctionWithLateBinding")) {
|
|
||||||
returnType = IrTree.simpleFunction
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("modality")
|
|
||||||
parameter("returnType")
|
|
||||||
parameter("isInline")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isTailrec")
|
|
||||||
parameter("isSuspend")
|
|
||||||
parameter("isOperator")
|
|
||||||
parameter("isInfix")
|
|
||||||
parameter("isExpect")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createLocalDelegatedProperty")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("type")
|
|
||||||
parameter("isVar")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createProperty")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("modality")
|
|
||||||
parameter("isVar")
|
|
||||||
parameter("isConst")
|
|
||||||
parameter("isLateinit")
|
|
||||||
parameter("isDelegated")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isExpect")
|
|
||||||
parameter("isFakeOverride")
|
|
||||||
parameter("containerSource")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createPropertyWithLateBinding")) {
|
|
||||||
returnType = IrTree.property
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("modality")
|
|
||||||
parameter("isVar")
|
|
||||||
parameter("isConst")
|
|
||||||
parameter("isLateinit")
|
|
||||||
parameter("isDelegated")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isExpect", removeDefaultValue = true)
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createSimpleFunction")) {
|
|
||||||
oldName = "createFunction"
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("modality")
|
|
||||||
parameter("returnType")
|
|
||||||
parameter("isInline")
|
|
||||||
parameter("isExternal", removeDefaultValue = true)
|
|
||||||
parameter("isTailrec")
|
|
||||||
parameter("isSuspend")
|
|
||||||
parameter("isOperator")
|
|
||||||
parameter("isInfix")
|
|
||||||
parameter("isExpect")
|
|
||||||
parameter("isFakeOverride")
|
|
||||||
parameter("containerSource")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createTypeAlias")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("visibility")
|
|
||||||
parameter("expandedType")
|
|
||||||
parameter("isActual")
|
|
||||||
parameter("origin")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createTypeParameter")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("index")
|
|
||||||
parameter("isReified")
|
|
||||||
parameter("variance")
|
|
||||||
}
|
|
||||||
|
|
||||||
addDeprecatedFunction(replacement("createValueParameter")) {
|
|
||||||
parameter("startOffset")
|
|
||||||
parameter("endOffset")
|
|
||||||
parameter("origin")
|
|
||||||
parameter("symbol")
|
|
||||||
parameter("name")
|
|
||||||
parameter("index")
|
|
||||||
parameter("type")
|
|
||||||
parameter("varargElementType")
|
|
||||||
parameter("isCrossinline")
|
|
||||||
parameter("isNoinline")
|
|
||||||
parameter("isHidden")
|
|
||||||
parameter("isAssignable")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
println("}")
|
println("}")
|
||||||
}
|
}
|
||||||
@@ -264,11 +55,6 @@ private class FactoryMethod(val element: Element) {
|
|||||||
}
|
}
|
||||||
.sortedBy { it.defaultValue != null } // All parameters with default values must go last
|
.sortedBy { it.defaultValue != null } // All parameters with default values must go last
|
||||||
.toMutableList()
|
.toMutableList()
|
||||||
|
|
||||||
fun addParameter(name: String, type: TypeRef): FactoryMethod {
|
|
||||||
parameters.add(FunctionParameter(name, type))
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private const val MAX_FUNCTION_PARAMETERS_ON_ONE_LINE = 2
|
private const val MAX_FUNCTION_PARAMETERS_ON_ONE_LINE = 2
|
||||||
@@ -285,68 +71,3 @@ private fun SmartPrinter.printFactoryMethod(factoryMethod: FactoryMethod) {
|
|||||||
)
|
)
|
||||||
println()
|
println()
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DeprecatedFunctionBuilder(private val replacement: FactoryMethod) {
|
|
||||||
val deprecatedFunctionParameters = mutableListOf<FunctionParameter>()
|
|
||||||
var oldName = replacement.name
|
|
||||||
var returnType: TypeRef = replacement.element
|
|
||||||
var deprecationMessage: String? = null
|
|
||||||
val defaultValue = mutableMapOf<String, String>()
|
|
||||||
|
|
||||||
fun parameter(name: String, removeDefaultValue: Boolean = false) {
|
|
||||||
val replacementParameter =
|
|
||||||
replacement.parameters.find { it.name == name } ?: error("Parameter '$name' not found in $replacement")
|
|
||||||
deprecatedFunctionParameters.add(if (removeDefaultValue) replacementParameter.copy(defaultValue = null) else replacementParameter)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
context(ImportCollector)
|
|
||||||
private fun SmartPrinter.addDeprecatedFunction(
|
|
||||||
replacement: FactoryMethod,
|
|
||||||
build: DeprecatedFunctionBuilder.() -> Unit
|
|
||||||
) {
|
|
||||||
val builder = DeprecatedFunctionBuilder(replacement)
|
|
||||||
builder.build()
|
|
||||||
|
|
||||||
val message = builder.deprecationMessage ?: if (builder.oldName != replacement.name) {
|
|
||||||
"The method has been renamed, and its parameters were reordered."
|
|
||||||
} else {
|
|
||||||
"The method's parameters were reordered."
|
|
||||||
}
|
|
||||||
|
|
||||||
println()
|
|
||||||
println("@Deprecated(")
|
|
||||||
withIndent {
|
|
||||||
println("message = \"", message, "\" +")
|
|
||||||
println(" \" This variant of the method will be removed when the 2024.2 IntelliJ platform is shipped (see KTIJ-26314).\",")
|
|
||||||
println("level = DeprecationLevel.HIDDEN,")
|
|
||||||
}
|
|
||||||
println(")")
|
|
||||||
val allParametersOnSeparateLines = builder.deprecatedFunctionParameters.size > MAX_FUNCTION_PARAMETERS_ON_ONE_LINE
|
|
||||||
printFunctionDeclaration(
|
|
||||||
name = builder.oldName,
|
|
||||||
parameters = builder.deprecatedFunctionParameters,
|
|
||||||
returnType = builder.returnType,
|
|
||||||
typeParameters = replacement.element.params,
|
|
||||||
allParametersOnSeparateLines = allParametersOnSeparateLines,
|
|
||||||
)
|
|
||||||
print(" = ", replacement.name, "(")
|
|
||||||
|
|
||||||
val renderedParameters = replacement.parameters.mapNotNull { parameter ->
|
|
||||||
if (builder.deprecatedFunctionParameters.any { it.name == parameter.name }) {
|
|
||||||
parameter.name
|
|
||||||
} else {
|
|
||||||
builder.defaultValue[parameter.name]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allParametersOnSeparateLines) {
|
|
||||||
println()
|
|
||||||
withIndent {
|
|
||||||
renderedParameters.forEach { println(it, ",") }
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
print(renderedParameters.joinToString())
|
|
||||||
}
|
|
||||||
println(")")
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user