[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
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.ir.IrStatement
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||
@@ -218,422 +217,4 @@ interface IrFactory {
|
||||
endOffset: Int,
|
||||
expression: IrExpression,
|
||||
): 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
|
||||
|
||||
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.GeneratedFile
|
||||
import org.jetbrains.kotlin.generators.tree.printer.printFunctionDeclaration
|
||||
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.irFactoryType
|
||||
import org.jetbrains.kotlin.ir.generator.model.Element
|
||||
@@ -38,215 +38,6 @@ internal fun printFactory(generationPath: File, model: Model): GeneratedFile = p
|
||||
.map(::FactoryMethod)
|
||||
|
||||
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("}")
|
||||
}
|
||||
@@ -264,11 +55,6 @@ private class FactoryMethod(val element: Element) {
|
||||
}
|
||||
.sortedBy { it.defaultValue != null } // All parameters with default values must go last
|
||||
.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
|
||||
@@ -285,68 +71,3 @@ private fun SmartPrinter.printFactoryMethod(factoryMethod: FactoryMethod) {
|
||||
)
|
||||
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