IR: remove deprecated constructors of IrFunctionImpl

This commit is contained in:
Alexander Udalov
2020-07-06 22:50:35 +02:00
parent 551f1f85a9
commit 7f9ef5e11d
4 changed files with 23 additions and 56 deletions
@@ -176,7 +176,12 @@ class StandaloneDeclarationGenerator(private val context: GeneratorContext) {
startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: FunctionDescriptor, symbol: IrSimpleFunctionSymbol,
defaultArgumentFactory: IrFunction.(IrValueParameter) -> IrExpressionBody? = { null }
): IrSimpleFunction {
val irFunction = IrFunctionImpl(startOffset, endOffset, origin, symbol, IrUninitializedType, descriptor)
val irFunction = with(descriptor) {
IrFunctionImpl(
startOffset, endOffset, origin, symbol, name, visibility, modality, IrUninitializedType,
isInline, isExternal, isTailrec, isSuspend, isOperator, isExpect
)
}
irFunction.metadata = MetadataSource.Function(descriptor)
symbolTable.withScope(descriptor) {
@@ -207,4 +212,4 @@ class StandaloneDeclarationGenerator(private val context: GeneratorContext) {
return irProperty
}
}
}
@@ -9,12 +9,13 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.declarations.impl.carriers.FunctionCarrier
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name
@@ -95,40 +96,6 @@ class IrFunctionImpl(
) : IrFunctionCommonImpl(startOffset, endOffset, origin, name, visibility, modality, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isExpect, isFakeOverride) {
constructor(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrSimpleFunctionSymbol,
returnType: IrType,
descriptor: FunctionDescriptor,
name: Name = descriptor.name
) : this(
startOffset, endOffset, origin, symbol,
name = name,
visibility = descriptor.visibility,
modality = descriptor.modality,
returnType = returnType,
isInline = descriptor.isInline,
isExternal = descriptor.isExternal,
isTailrec = descriptor.isTailrec,
isSuspend = descriptor.isSuspend,
isOperator = descriptor.isOperator,
isExpect = descriptor.isExpect
)
// Used by kotlin-native in InteropLowering.kt and IrUtils2.kt
constructor(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
descriptor: FunctionDescriptor,
returnType: IrType
) : this(
startOffset, endOffset, origin,
IrSimpleFunctionSymbolImpl(descriptor), returnType, descriptor
)
@ObsoleteDescriptorBasedAPI
override val descriptor: FunctionDescriptor get() = symbol.descriptor
@@ -6,14 +6,11 @@
package org.jetbrains.kotlin.ir.util
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.IrField
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
import org.jetbrains.kotlin.ir.declarations.MetadataSource
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
@ObsoleteDescriptorBasedAPI
@@ -24,13 +21,13 @@ fun SymbolTable.declareSimpleFunctionWithOverrides(
descriptor: FunctionDescriptor
) =
declareSimpleFunction(descriptor) {
IrFunctionImpl(
startOffset, endOffset, origin, it,
returnType = IrUninitializedType,
descriptor = descriptor,
name = nameProvider.nameForDeclaration(descriptor),
).apply {
metadata = MetadataSource.Function(descriptor)
with(descriptor) {
IrFunctionImpl(
startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(this),
visibility, modality, IrUninitializedType, isInline, isExternal, isTailrec, isSuspend, isOperator, isExpect
).also { declaration ->
declaration.metadata = MetadataSource.Function(this)
}
}
}.also { declaration ->
generateOverriddenFunctionSymbols(declaration, this)
@@ -281,14 +281,12 @@ interface IrBuilderExtension {
assert(symbol.isBound || declare)
if (declare) {
IrFunctionImpl(
fieldSymbol.owner.startOffset,
fieldSymbol.owner.endOffset,
SERIALIZABLE_PLUGIN_ORIGIN,
symbol,
descriptor.returnType!!.toIrType(),
descriptor
).also { f ->
with(descriptor) {
IrFunctionImpl(
fieldSymbol.owner.startOffset, fieldSymbol.owner.endOffset, SERIALIZABLE_PLUGIN_ORIGIN, symbol,
name, visibility, modality, returnType!!.toIrType(), isInline, isExternal, isTailrec, isSuspend, isOperator, isExpect
)
}.also { f ->
generateOverriddenFunctionSymbols(f, compilerContext.symbolTable)
f.createParameterDeclarations(receiver = null)
f.returnType = descriptor.returnType!!.toIrType()