IR: avoid storing unnecessary fields in IrFunctionImpl

This commit is contained in:
Alexander Udalov
2020-07-21 13:29:15 +02:00
parent 517c3e1020
commit 3f06f8a6ba
@@ -27,7 +27,6 @@ abstract class IrFunctionCommonImpl(
origin: IrDeclarationOrigin, origin: IrDeclarationOrigin,
name: Name, name: Name,
visibility: Visibility, visibility: Visibility,
override val modality: Modality,
returnType: IrType, returnType: IrType,
isInline: Boolean, isInline: Boolean,
isExternal: Boolean, isExternal: Boolean,
@@ -36,7 +35,6 @@ abstract class IrFunctionCommonImpl(
override val isOperator: Boolean, override val isOperator: Boolean,
override val isInfix: Boolean, override val isInfix: Boolean,
isExpect: Boolean, isExpect: Boolean,
override val isFakeOverride: Boolean
) : ) :
IrFunctionBase<FunctionCarrier>(startOffset, endOffset, origin, name, visibility, isInline, isExternal, isExpect, returnType), IrFunctionBase<FunctionCarrier>(startOffset, endOffset, origin, name, visibility, isInline, isExternal, isExpect, returnType),
IrSimpleFunction, IrSimpleFunction,
@@ -90,17 +88,19 @@ class IrFunctionImpl(
returnType: IrType, returnType: IrType,
isInline: Boolean, isInline: Boolean,
isExternal: Boolean, isExternal: Boolean,
override val isTailrec: Boolean, isTailrec: Boolean,
override val isSuspend: Boolean, isSuspend: Boolean,
override val isOperator: Boolean, isOperator: Boolean,
isInfix: Boolean, isInfix: Boolean,
isExpect: Boolean, isExpect: Boolean,
override val isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE override val isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
) : IrFunctionCommonImpl(startOffset, endOffset, origin, name, visibility, modality, returnType, isInline, ) : IrFunctionCommonImpl(
isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride) { startOffset, endOffset, origin, name, visibility, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
) {
@ObsoleteDescriptorBasedAPI @ObsoleteDescriptorBasedAPI
override val descriptor: FunctionDescriptor get() = symbol.descriptor override val descriptor: FunctionDescriptor
get() = symbol.descriptor
init { init {
symbol.bind(this) symbol.bind(this)
@@ -126,9 +126,12 @@ class IrFakeOverrideFunctionImpl(
isInfix: Boolean, isInfix: Boolean,
isExpect: Boolean, isExpect: Boolean,
) : IrFunctionCommonImpl( ) : IrFunctionCommonImpl(
startOffset, endOffset, origin, name, visibility, modality, returnType, isInline, startOffset, endOffset, origin, name, visibility, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride = true isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
), IrFakeOverrideFunction { ), IrFakeOverrideFunction {
override val isFakeOverride: Boolean
get() = true
private var _symbol: IrSimpleFunctionSymbol? = null private var _symbol: IrSimpleFunctionSymbol? = null
override val symbol: IrSimpleFunctionSymbol override val symbol: IrSimpleFunctionSymbol