IR: move containerSource from descriptor to IrFunction, IrProperty

This commit is contained in:
Georgy Bronnikov
2020-08-09 13:29:11 +03:00
parent 4669e019d1
commit 04d93dfbce
41 changed files with 178 additions and 93 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
class IrConstructorImpl(
override val startOffset: Int,
@@ -38,6 +39,7 @@ class IrConstructorImpl(
override val isExternal: Boolean,
override val isPrimary: Boolean,
override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource? = null,
) : IrConstructor() {
init {
symbol.bind(this)
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
import org.jetbrains.kotlin.types.Variance
object IrFactoryImpl : IrFactory {
@@ -63,8 +64,12 @@ object IrFactoryImpl : IrFactory {
isExternal: Boolean,
isPrimary: Boolean,
isExpect: Boolean,
containerSource: DeserializedContainerSource?,
): IrConstructor =
IrConstructorImpl(startOffset, endOffset, origin, symbol, name, visibility, returnType, isInline, isExternal, isPrimary, isExpect)
IrConstructorImpl(
startOffset, endOffset, origin, symbol, name, visibility, returnType, isInline, isExternal, isPrimary, isExpect,
containerSource,
)
override fun createEnumEntry(
startOffset: Int,
@@ -113,10 +118,12 @@ object IrFactoryImpl : IrFactory {
isInfix: Boolean,
isExpect: Boolean,
isFakeOverride: Boolean,
containerSource: DeserializedContainerSource?,
): IrSimpleFunction =
IrFunctionImpl(
startOffset, endOffset, origin, symbol, name, visibility, modality, returnType,
isInline, isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect, isFakeOverride,
containerSource
)
override fun createFakeOverrideFunction(
@@ -166,10 +173,12 @@ object IrFactoryImpl : IrFactory {
isExternal: Boolean,
isExpect: Boolean,
isFakeOverride: Boolean,
containerSource: DeserializedContainerSource?,
): IrProperty =
IrPropertyImpl(
startOffset, endOffset, origin, symbol, name, visibility, modality,
isVar, isConst, isLateinit, isDelegated, isExternal, isExpect, isFakeOverride,
containerSource,
)
override fun createFakeOverrideProperty(
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.ir.types.IrType
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
abstract class IrFunctionCommonImpl(
override val startOffset: Int,
@@ -32,6 +33,7 @@ abstract class IrFunctionCommonImpl(
override val isOperator: Boolean,
override val isInfix: Boolean,
override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource?,
) : IrSimpleFunction() {
override val factory: IrFactory
get() = IrFactoryImpl
@@ -82,9 +84,11 @@ class IrFunctionImpl(
isInfix: Boolean,
isExpect: Boolean,
override val isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
containerSource: DeserializedContainerSource? = null,
) : IrFunctionCommonImpl(
startOffset, endOffset, origin, name, visibility, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
containerSource,
) {
@ObsoleteDescriptorBasedAPI
override val descriptor: FunctionDescriptor
@@ -113,6 +117,7 @@ class IrFakeOverrideFunctionImpl(
) : IrFunctionCommonImpl(
startOffset, endOffset, origin, name, visibility, returnType, isInline,
isExternal, isTailrec, isSuspend, isOperator, isInfix, isExpect,
containerSource = null,
), IrFakeOverrideFunction {
override val isFakeOverride: Boolean
get() = true
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
abstract class IrPropertyCommonImpl(
override val startOffset: Int,
@@ -38,6 +39,7 @@ abstract class IrPropertyCommonImpl(
override val isDelegated: Boolean,
override val isExternal: Boolean,
override val isExpect: Boolean,
override val containerSource: DeserializedContainerSource?,
) : IrProperty() {
override val factory: IrFactory
get() = IrFactoryImpl
@@ -69,8 +71,10 @@ class IrPropertyImpl(
isExternal: Boolean,
isExpect: Boolean = false,
override val isFakeOverride: Boolean = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
containerSource: DeserializedContainerSource? = null,
) : IrPropertyCommonImpl(
startOffset, endOffset, origin, name, visibility, isVar, isConst, isLateinit, isDelegated, isExternal, isExpect,
containerSource
) {
init {
symbol.bind(this)
@@ -96,6 +100,7 @@ class IrFakeOverridePropertyImpl(
isExpect: Boolean,
) : IrPropertyCommonImpl(
startOffset, endOffset, origin, name, visibility, isVar, isConst, isLateinit, isDelegated, isExternal, isExpect,
containerSource = null,
), IrFakeOverrideProperty {
override val isFakeOverride: Boolean
get() = true