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, startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: FunctionDescriptor, symbol: IrSimpleFunctionSymbol,
defaultArgumentFactory: IrFunction.(IrValueParameter) -> IrExpressionBody? = { null } defaultArgumentFactory: IrFunction.(IrValueParameter) -> IrExpressionBody? = { null }
): IrSimpleFunction { ): 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) irFunction.metadata = MetadataSource.Function(descriptor)
symbolTable.withScope(descriptor) { symbolTable.withScope(descriptor) {
@@ -9,12 +9,13 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI 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.declarations.impl.carriers.FunctionCarrier
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol 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.types.IrType
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
@@ -95,40 +96,6 @@ class IrFunctionImpl(
) : IrFunctionCommonImpl(startOffset, endOffset, origin, name, visibility, modality, returnType, isInline, ) : IrFunctionCommonImpl(startOffset, endOffset, origin, name, visibility, modality, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isExpect, isFakeOverride) { 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 @ObsoleteDescriptorBasedAPI
override val descriptor: FunctionDescriptor get() = symbol.descriptor override val descriptor: FunctionDescriptor get() = symbol.descriptor
@@ -6,14 +6,11 @@
package org.jetbrains.kotlin.ir.util package org.jetbrains.kotlin.ir.util
import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin 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.IrSimpleFunction
import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.ir.declarations.MetadataSource
import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
@@ -24,13 +21,13 @@ fun SymbolTable.declareSimpleFunctionWithOverrides(
descriptor: FunctionDescriptor descriptor: FunctionDescriptor
) = ) =
declareSimpleFunction(descriptor) { declareSimpleFunction(descriptor) {
IrFunctionImpl( with(descriptor) {
startOffset, endOffset, origin, it, IrFunctionImpl(
returnType = IrUninitializedType, startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(this),
descriptor = descriptor, visibility, modality, IrUninitializedType, isInline, isExternal, isTailrec, isSuspend, isOperator, isExpect
name = nameProvider.nameForDeclaration(descriptor), ).also { declaration ->
).apply { declaration.metadata = MetadataSource.Function(this)
metadata = MetadataSource.Function(descriptor) }
} }
}.also { declaration -> }.also { declaration ->
generateOverriddenFunctionSymbols(declaration, this) generateOverriddenFunctionSymbols(declaration, this)
@@ -281,14 +281,12 @@ interface IrBuilderExtension {
assert(symbol.isBound || declare) assert(symbol.isBound || declare)
if (declare) { if (declare) {
IrFunctionImpl( with(descriptor) {
fieldSymbol.owner.startOffset, IrFunctionImpl(
fieldSymbol.owner.endOffset, fieldSymbol.owner.startOffset, fieldSymbol.owner.endOffset, SERIALIZABLE_PLUGIN_ORIGIN, symbol,
SERIALIZABLE_PLUGIN_ORIGIN, name, visibility, modality, returnType!!.toIrType(), isInline, isExternal, isTailrec, isSuspend, isOperator, isExpect
symbol, )
descriptor.returnType!!.toIrType(), }.also { f ->
descriptor
).also { f ->
generateOverriddenFunctionSymbols(f, compilerContext.symbolTable) generateOverriddenFunctionSymbols(f, compilerContext.symbolTable)
f.createParameterDeclarations(receiver = null) f.createParameterDeclarations(receiver = null)
f.returnType = descriptor.returnType!!.toIrType() f.returnType = descriptor.returnType!!.toIrType()