PIR: transform base implementation classes to interfaces
Unfortunately this requires a lot of boilerplate, but is a requirement for transforming the main IR element hierarchy interfaces (IrDeclaration, IrClass, ...) to classes.
This commit is contained in:
+17
-3
@@ -20,17 +20,21 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
|||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrAnonymousInitializer
|
import org.jetbrains.kotlin.ir.declarations.IrAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.AnonymousInitializerCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.AnonymousInitializerCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrAnonymousInitializerSymbol
|
||||||
|
|
||||||
internal class PersistentIrAnonymousInitializer(
|
internal class PersistentIrAnonymousInitializer(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrAnonymousInitializerSymbol,
|
override val symbol: IrAnonymousInitializerSymbol,
|
||||||
override val isStatic: Boolean = false
|
override val isStatic: Boolean = false
|
||||||
) : PersistentIrDeclarationBase<AnonymousInitializerCarrier>(startOffset, endOffset, origin),
|
) : PersistentIrDeclarationBase<AnonymousInitializerCarrier>,
|
||||||
IrAnonymousInitializer,
|
IrAnonymousInitializer,
|
||||||
AnonymousInitializerCarrier {
|
AnonymousInitializerCarrier {
|
||||||
|
|
||||||
@@ -38,6 +42,16 @@ internal class PersistentIrAnonymousInitializer(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+15
-3
@@ -19,15 +19,17 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ClassCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal class PersistentIrClass(
|
internal class PersistentIrClass(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrClassSymbol,
|
override val symbol: IrClassSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -43,7 +45,7 @@ internal class PersistentIrClass(
|
|||||||
override val isFun: Boolean = false,
|
override val isFun: Boolean = false,
|
||||||
override val source: SourceElement = SourceElement.NO_SOURCE
|
override val source: SourceElement = SourceElement.NO_SOURCE
|
||||||
) :
|
) :
|
||||||
PersistentIrDeclarationBase<ClassCarrier>(startOffset, endOffset, origin),
|
PersistentIrDeclarationBase<ClassCarrier>,
|
||||||
IrClass,
|
IrClass,
|
||||||
ClassCarrier {
|
ClassCarrier {
|
||||||
|
|
||||||
@@ -51,6 +53,16 @@ internal class PersistentIrClass(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+113
-14
@@ -19,32 +19,29 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
|
||||||
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.IrConstructor
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ConstructorCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class PersistentIrConstructor(
|
internal class PersistentIrConstructor(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrConstructorSymbol,
|
override val symbol: IrConstructorSymbol,
|
||||||
name: Name,
|
override val name: Name,
|
||||||
visibility: Visibility,
|
visibility: Visibility,
|
||||||
returnType: IrType,
|
returnType: IrType,
|
||||||
isInline: Boolean,
|
override val isInline: Boolean,
|
||||||
isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isPrimary: Boolean,
|
override val isPrimary: Boolean,
|
||||||
isExpect: Boolean
|
override val isExpect: Boolean
|
||||||
) :
|
) :
|
||||||
PersistentIrFunctionBase<ConstructorCarrier>(
|
PersistentIrDeclarationBase<ConstructorCarrier>,
|
||||||
startOffset, endOffset, origin, name,
|
|
||||||
visibility,
|
|
||||||
isInline, isExternal, isExpect,
|
|
||||||
returnType
|
|
||||||
),
|
|
||||||
IrConstructor,
|
IrConstructor,
|
||||||
ConstructorCarrier {
|
ConstructorCarrier {
|
||||||
|
|
||||||
@@ -52,6 +49,108 @@ internal class PersistentIrConstructor(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
|
override var returnTypeFieldField: IrType = returnType
|
||||||
|
|
||||||
|
private var returnTypeField: IrType
|
||||||
|
get() = getCarrier().returnTypeFieldField
|
||||||
|
set(v) {
|
||||||
|
if (returnTypeField !== v) {
|
||||||
|
setCarrier().returnTypeFieldField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
override var returnType: IrType
|
||||||
|
get() = returnTypeField.let {
|
||||||
|
if (it !== org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) it else error("Return type is not initialized")
|
||||||
|
}
|
||||||
|
set(c) {
|
||||||
|
returnTypeField = c
|
||||||
|
}
|
||||||
|
|
||||||
|
override var typeParametersField: List<IrTypeParameter> = emptyList()
|
||||||
|
|
||||||
|
override var typeParameters: List<IrTypeParameter>
|
||||||
|
get() = getCarrier().typeParametersField
|
||||||
|
set(v) {
|
||||||
|
if (typeParameters !== v) {
|
||||||
|
setCarrier().typeParametersField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var dispatchReceiverParameterField: IrValueParameter? = null
|
||||||
|
|
||||||
|
override var dispatchReceiverParameter: IrValueParameter?
|
||||||
|
get() = getCarrier().dispatchReceiverParameterField
|
||||||
|
set(v) {
|
||||||
|
if (dispatchReceiverParameter !== v) {
|
||||||
|
setCarrier().dispatchReceiverParameterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var extensionReceiverParameterField: IrValueParameter? = null
|
||||||
|
|
||||||
|
override var extensionReceiverParameter: IrValueParameter?
|
||||||
|
get() = getCarrier().extensionReceiverParameterField
|
||||||
|
set(v) {
|
||||||
|
if (extensionReceiverParameter !== v) {
|
||||||
|
setCarrier().extensionReceiverParameterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var valueParametersField: List<IrValueParameter> = emptyList()
|
||||||
|
|
||||||
|
override var valueParameters: List<IrValueParameter>
|
||||||
|
get() = getCarrier().valueParametersField
|
||||||
|
set(v) {
|
||||||
|
if (valueParameters !== v) {
|
||||||
|
setCarrier().valueParametersField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var bodyField: IrBody? = null
|
||||||
|
|
||||||
|
override var body: IrBody?
|
||||||
|
get() = getCarrier().bodyField
|
||||||
|
set(v) {
|
||||||
|
if (body !== v) {
|
||||||
|
if (v is PersistentIrBodyBase<*>) {
|
||||||
|
v.container = this
|
||||||
|
}
|
||||||
|
setCarrier().bodyField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var metadataField: MetadataSource? = null
|
||||||
|
|
||||||
|
override var metadata: MetadataSource?
|
||||||
|
get() = getCarrier().metadataField
|
||||||
|
set(v) {
|
||||||
|
if (metadata !== v) {
|
||||||
|
setCarrier().metadataField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var visibilityField: Visibility = visibility
|
||||||
|
|
||||||
|
override var visibility: Visibility
|
||||||
|
get() = getCarrier().visibilityField
|
||||||
|
set(v) {
|
||||||
|
if (visibility !== v) {
|
||||||
|
setCarrier().visibilityField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassConstructorDescriptor
|
override val descriptor: ClassConstructorDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+17
-39
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.persistent
|
package org.jetbrains.kotlin.ir.declarations.persistent
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrElementBase
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.BodyCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.BodyCarrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
@@ -24,19 +24,12 @@ import org.jetbrains.kotlin.ir.declarations.persistent.carriers.DeclarationCarri
|
|||||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
|
|
||||||
abstract class PersistentIrDeclarationBase<T : DeclarationCarrier>(
|
interface PersistentIrDeclarationBase<T : DeclarationCarrier> : PersistentIrElementBase<T>, IrDeclaration, DeclarationCarrier {
|
||||||
startOffset: Int,
|
var removedOn: Int
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin
|
|
||||||
) : PersistentIrElementBase<T>(startOffset, endOffset),
|
|
||||||
IrDeclaration,
|
|
||||||
DeclarationCarrier {
|
|
||||||
|
|
||||||
override val factory: IrFactory
|
override val factory: IrFactory
|
||||||
get() = PersistentIrFactory
|
get() = PersistentIrFactory
|
||||||
|
|
||||||
override var parentField: IrDeclarationParent? = null
|
|
||||||
|
|
||||||
// TODO reduce boilerplate
|
// TODO reduce boilerplate
|
||||||
override var parent: IrDeclarationParent
|
override var parent: IrDeclarationParent
|
||||||
get() = getCarrier().parentField ?: throw UninitializedPropertyAccessException("Parent not initialized: $this")
|
get() = getCarrier().parentField ?: throw UninitializedPropertyAccessException("Parent not initialized: $this")
|
||||||
@@ -46,8 +39,6 @@ abstract class PersistentIrDeclarationBase<T : DeclarationCarrier>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override var originField: IrDeclarationOrigin = origin
|
|
||||||
|
|
||||||
override var origin: IrDeclarationOrigin
|
override var origin: IrDeclarationOrigin
|
||||||
get() = getCarrier().originField
|
get() = getCarrier().originField
|
||||||
set(p) {
|
set(p) {
|
||||||
@@ -56,10 +47,6 @@ abstract class PersistentIrDeclarationBase<T : DeclarationCarrier>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var removedOn: Int = Int.MAX_VALUE
|
|
||||||
|
|
||||||
override var annotationsField: List<IrConstructorCall> = emptyList()
|
|
||||||
|
|
||||||
override var annotations: List<IrConstructorCall>
|
override var annotations: List<IrConstructorCall>
|
||||||
get() = getCarrier().annotationsField
|
get() = getCarrier().annotationsField
|
||||||
set(v) {
|
set(v) {
|
||||||
@@ -75,26 +62,19 @@ abstract class PersistentIrDeclarationBase<T : DeclarationCarrier>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
interface PersistentIrElementBase<T : Carrier> : IrElement, Carrier {
|
||||||
abstract class PersistentIrElementBase<T : Carrier>(
|
override var lastModified: Int
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int
|
|
||||||
) : IrElementBase(startOffset, endOffset),
|
|
||||||
Carrier {
|
|
||||||
|
|
||||||
override var lastModified: Int = stageController.currentStage
|
var loweredUpTo: Int
|
||||||
|
|
||||||
var loweredUpTo = stageController.currentStage
|
|
||||||
|
|
||||||
// TODO Array<T>?
|
// TODO Array<T>?
|
||||||
private var values: Array<Carrier>? = null
|
var values: Array<Carrier>?
|
||||||
|
|
||||||
val createdOn: Int = stageController.currentStage
|
val createdOn: Int
|
||||||
// get() = values?.let { (it[0] as T).lastModified } ?: lastModified
|
|
||||||
|
|
||||||
abstract fun ensureLowered()
|
fun ensureLowered()
|
||||||
|
|
||||||
protected fun getCarrier(): T {
|
fun getCarrier(): T {
|
||||||
stageController.currentStage.let { stage ->
|
stageController.currentStage.let { stage ->
|
||||||
ensureLowered()
|
ensureLowered()
|
||||||
|
|
||||||
@@ -124,7 +104,7 @@ abstract class PersistentIrElementBase<T : Carrier>(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO naming? e.g. `mutableCarrier`
|
// TODO naming? e.g. `mutableCarrier`
|
||||||
protected fun setCarrier(): T {
|
fun setCarrier(): T {
|
||||||
val stage = stageController.currentStage
|
val stage = stageController.currentStage
|
||||||
|
|
||||||
ensureLowered()
|
ensureLowered()
|
||||||
@@ -150,12 +130,10 @@ abstract class PersistentIrElementBase<T : Carrier>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class PersistentIrBodyBase<B : PersistentIrBodyBase<B>>(
|
interface PersistentIrBodyBase<B : PersistentIrBodyBase<B>> : PersistentIrElementBase<BodyCarrier>, BodyCarrier {
|
||||||
startOffset: Int,
|
var initializer: (B.() -> Unit)?
|
||||||
endOffset: Int,
|
|
||||||
private var initializer: (B.() -> Unit)?
|
override var containerField: IrDeclaration?
|
||||||
) : PersistentIrElementBase<BodyCarrier>(startOffset, endOffset), IrBody, BodyCarrier {
|
|
||||||
override var containerField: IrDeclaration? = null
|
|
||||||
|
|
||||||
var container: IrDeclaration
|
var container: IrDeclaration
|
||||||
get() = getCarrier().containerField!!
|
get() = getCarrier().containerField!!
|
||||||
@@ -165,7 +143,7 @@ abstract class PersistentIrBodyBase<B : PersistentIrBodyBase<B>>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun <T> checkEnabled(fn: () -> T): T {
|
fun <T> checkEnabled(fn: () -> T): T {
|
||||||
if (!stageController.bodiesEnabled) error("Bodies disabled!")
|
if (!stageController.bodiesEnabled) error("Bodies disabled!")
|
||||||
ensureLowered()
|
ensureLowered()
|
||||||
return fn()
|
return fn()
|
||||||
@@ -182,7 +160,7 @@ abstract class PersistentIrBodyBase<B : PersistentIrBodyBase<B>>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (loweredUpTo + 1 < stageController.currentStage) {
|
if (loweredUpTo + 1 < stageController.currentStage) {
|
||||||
stageController.lazyLower(this)
|
stageController.lazyLower(this as IrBody)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-6
@@ -18,21 +18,21 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrEnumEntry
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.EnumEntryCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrEnumEntrySymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class PersistentIrEnumEntry(
|
internal class PersistentIrEnumEntry(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrEnumEntrySymbol,
|
override val symbol: IrEnumEntrySymbol,
|
||||||
override val name: Name
|
override val name: Name
|
||||||
) : PersistentIrDeclarationBase<EnumEntryCarrier>(startOffset, endOffset, origin),
|
) : PersistentIrDeclarationBase<EnumEntryCarrier>,
|
||||||
IrEnumEntry,
|
IrEnumEntry,
|
||||||
EnumEntryCarrier {
|
EnumEntryCarrier {
|
||||||
|
|
||||||
@@ -40,6 +40,16 @@ internal class PersistentIrEnumEntry(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: ClassDescriptor
|
override val descriptor: ClassDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+17
-3
@@ -19,12 +19,26 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
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.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration
|
import org.jetbrains.kotlin.ir.declarations.IrErrorDeclaration
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
internal class PersistentIrErrorDeclaration(
|
internal class PersistentIrErrorDeclaration(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val descriptor: DeclarationDescriptor
|
override val descriptor: DeclarationDescriptor
|
||||||
) : PersistentIrDeclarationBase<ErrorCarrier>(startOffset, endOffset, IrDeclarationOrigin.DEFINED), IrErrorDeclaration, ErrorCarrier
|
) : PersistentIrDeclarationBase<ErrorCarrier>, IrErrorDeclaration, ErrorCarrier {
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
}
|
||||||
|
|||||||
+16
-6
@@ -19,10 +19,10 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||||
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.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrField
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.MetadataSource
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FieldCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||||
@@ -30,8 +30,8 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class PersistentIrField(
|
internal class PersistentIrField(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -40,7 +40,7 @@ internal class PersistentIrField(
|
|||||||
override val isFinal: Boolean,
|
override val isFinal: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isStatic: Boolean
|
override val isStatic: Boolean
|
||||||
) : PersistentIrDeclarationBase<FieldCarrier>(startOffset, endOffset, origin),
|
) : PersistentIrDeclarationBase<FieldCarrier>,
|
||||||
IrField,
|
IrField,
|
||||||
FieldCarrier {
|
FieldCarrier {
|
||||||
|
|
||||||
@@ -48,6 +48,16 @@ internal class PersistentIrField(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: PropertyDescriptor
|
override val descriptor: PropertyDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+113
-11
@@ -9,36 +9,138 @@ 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.IrAttributeContainer
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFakeOverrideFunction
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrBody
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
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.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal abstract class PersistentIrFunctionCommon(
|
internal abstract class PersistentIrFunctionCommon(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
name: Name,
|
override val name: Name,
|
||||||
visibility: Visibility,
|
visibility: Visibility,
|
||||||
returnType: IrType,
|
returnType: IrType,
|
||||||
isInline: Boolean,
|
override val isInline: Boolean,
|
||||||
isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isTailrec: Boolean,
|
override val isTailrec: Boolean,
|
||||||
override val isSuspend: Boolean,
|
override val isSuspend: Boolean,
|
||||||
override val isOperator: Boolean,
|
override val isOperator: Boolean,
|
||||||
override val isInfix: Boolean,
|
override val isInfix: Boolean,
|
||||||
isExpect: Boolean,
|
override val isExpect: Boolean,
|
||||||
) :
|
) :
|
||||||
PersistentIrFunctionBase<FunctionCarrier>(startOffset, endOffset, origin, name, visibility, isInline, isExternal, isExpect, returnType),
|
PersistentIrDeclarationBase<FunctionCarrier>,
|
||||||
IrSimpleFunction,
|
IrSimpleFunction,
|
||||||
FunctionCarrier {
|
FunctionCarrier {
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
|
override var returnTypeFieldField: IrType = returnType
|
||||||
|
|
||||||
|
private var returnTypeField: IrType
|
||||||
|
get() = getCarrier().returnTypeFieldField
|
||||||
|
set(v) {
|
||||||
|
if (returnTypeField !== v) {
|
||||||
|
setCarrier().returnTypeFieldField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
final override var returnType: IrType
|
||||||
|
get() = returnTypeField.let {
|
||||||
|
if (it !== org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) it else error("Return type is not initialized")
|
||||||
|
}
|
||||||
|
set(c) {
|
||||||
|
returnTypeField = c
|
||||||
|
}
|
||||||
|
|
||||||
|
override var typeParametersField: List<IrTypeParameter> = emptyList()
|
||||||
|
|
||||||
|
override var typeParameters: List<IrTypeParameter>
|
||||||
|
get() = getCarrier().typeParametersField
|
||||||
|
set(v) {
|
||||||
|
if (typeParameters !== v) {
|
||||||
|
setCarrier().typeParametersField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var dispatchReceiverParameterField: IrValueParameter? = null
|
||||||
|
|
||||||
|
override var dispatchReceiverParameter: IrValueParameter?
|
||||||
|
get() = getCarrier().dispatchReceiverParameterField
|
||||||
|
set(v) {
|
||||||
|
if (dispatchReceiverParameter !== v) {
|
||||||
|
setCarrier().dispatchReceiverParameterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var extensionReceiverParameterField: IrValueParameter? = null
|
||||||
|
|
||||||
|
override var extensionReceiverParameter: IrValueParameter?
|
||||||
|
get() = getCarrier().extensionReceiverParameterField
|
||||||
|
set(v) {
|
||||||
|
if (extensionReceiverParameter !== v) {
|
||||||
|
setCarrier().extensionReceiverParameterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var valueParametersField: List<IrValueParameter> = emptyList()
|
||||||
|
|
||||||
|
override var valueParameters: List<IrValueParameter>
|
||||||
|
get() = getCarrier().valueParametersField
|
||||||
|
set(v) {
|
||||||
|
if (valueParameters !== v) {
|
||||||
|
setCarrier().valueParametersField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var bodyField: IrBody? = null
|
||||||
|
|
||||||
|
final override var body: IrBody?
|
||||||
|
get() = getCarrier().bodyField
|
||||||
|
set(v) {
|
||||||
|
if (body !== v) {
|
||||||
|
if (v is PersistentIrBodyBase<*>) {
|
||||||
|
v.container = this
|
||||||
|
}
|
||||||
|
setCarrier().bodyField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var metadataField: MetadataSource? = null
|
||||||
|
|
||||||
|
override var metadata: MetadataSource?
|
||||||
|
get() = getCarrier().metadataField
|
||||||
|
set(v) {
|
||||||
|
if (metadata !== v) {
|
||||||
|
setCarrier().metadataField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var visibilityField: Visibility = visibility
|
||||||
|
|
||||||
|
override var visibility: Visibility
|
||||||
|
get() = getCarrier().visibilityField
|
||||||
|
set(v) {
|
||||||
|
if (visibility !== v) {
|
||||||
|
setCarrier().visibilityField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol> = emptyList()
|
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol> = emptyList()
|
||||||
|
|
||||||
override var overriddenSymbols: List<IrSimpleFunctionSymbol>
|
override var overriddenSymbols: List<IrSimpleFunctionSymbol>
|
||||||
|
|||||||
-132
@@ -1,132 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.persistent
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionBaseCarrier
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBody
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
|
||||||
|
|
||||||
internal abstract class PersistentIrFunctionBase<T : FunctionBaseCarrier>(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
override val name: Name,
|
|
||||||
visibility: Visibility,
|
|
||||||
override val isInline: Boolean,
|
|
||||||
override val isExternal: Boolean,
|
|
||||||
override val isExpect: Boolean,
|
|
||||||
returnType: IrType
|
|
||||||
) :
|
|
||||||
PersistentIrDeclarationBase<T>(startOffset, endOffset, origin),
|
|
||||||
IrFunction,
|
|
||||||
FunctionBaseCarrier {
|
|
||||||
|
|
||||||
override var returnTypeFieldField: IrType = returnType
|
|
||||||
|
|
||||||
private var returnTypeField: IrType
|
|
||||||
get() = getCarrier().returnTypeFieldField
|
|
||||||
set(v) {
|
|
||||||
if (returnTypeField !== v) {
|
|
||||||
setCarrier().returnTypeFieldField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
final override var returnType: IrType
|
|
||||||
get() = returnTypeField.let {
|
|
||||||
if (it !== org.jetbrains.kotlin.ir.types.impl.IrUninitializedType) it else error("Return type is not initialized")
|
|
||||||
}
|
|
||||||
set(c) {
|
|
||||||
returnTypeField = c
|
|
||||||
}
|
|
||||||
|
|
||||||
override var typeParametersField: List<IrTypeParameter> = emptyList()
|
|
||||||
|
|
||||||
override var typeParameters: List<IrTypeParameter>
|
|
||||||
get() = getCarrier().typeParametersField
|
|
||||||
set(v) {
|
|
||||||
if (typeParameters !== v) {
|
|
||||||
setCarrier().typeParametersField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var dispatchReceiverParameterField: IrValueParameter? = null
|
|
||||||
|
|
||||||
override var dispatchReceiverParameter: IrValueParameter?
|
|
||||||
get() = getCarrier().dispatchReceiverParameterField
|
|
||||||
set(v) {
|
|
||||||
if (dispatchReceiverParameter !== v) {
|
|
||||||
setCarrier().dispatchReceiverParameterField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var extensionReceiverParameterField: IrValueParameter? = null
|
|
||||||
|
|
||||||
override var extensionReceiverParameter: IrValueParameter?
|
|
||||||
get() = getCarrier().extensionReceiverParameterField
|
|
||||||
set(v) {
|
|
||||||
if (extensionReceiverParameter !== v) {
|
|
||||||
setCarrier().extensionReceiverParameterField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var valueParametersField: List<IrValueParameter> = emptyList()
|
|
||||||
|
|
||||||
override var valueParameters: List<IrValueParameter>
|
|
||||||
get() = getCarrier().valueParametersField
|
|
||||||
set(v) {
|
|
||||||
if (valueParameters !== v) {
|
|
||||||
setCarrier().valueParametersField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var bodyField: IrBody? = null
|
|
||||||
|
|
||||||
final override var body: IrBody?
|
|
||||||
get() = getCarrier().bodyField
|
|
||||||
set(v) {
|
|
||||||
if (body !== v) {
|
|
||||||
if (v is PersistentIrBodyBase<*>) {
|
|
||||||
v.container = this
|
|
||||||
}
|
|
||||||
setCarrier().bodyField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var metadataField: MetadataSource? = null
|
|
||||||
|
|
||||||
override var metadata: MetadataSource?
|
|
||||||
get() = getCarrier().metadataField
|
|
||||||
set(v) {
|
|
||||||
if (metadata !== v) {
|
|
||||||
setCarrier().metadataField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var visibilityField: Visibility = visibility
|
|
||||||
|
|
||||||
override var visibility: Visibility
|
|
||||||
get() = getCarrier().visibilityField
|
|
||||||
set(v) {
|
|
||||||
if (visibility !== v) {
|
|
||||||
setCarrier().visibilityField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+15
-3
@@ -19,22 +19,24 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
|
import org.jetbrains.kotlin.descriptors.VariableDescriptorWithAccessors
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.LocalDelegatedPropertyCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol
|
import org.jetbrains.kotlin.ir.symbols.IrLocalDelegatedPropertySymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
// TODO make not persistent
|
// TODO make not persistent
|
||||||
internal class PersistentIrLocalDelegatedProperty(
|
internal class PersistentIrLocalDelegatedProperty(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrLocalDelegatedPropertySymbol,
|
override val symbol: IrLocalDelegatedPropertySymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override val type: IrType,
|
override val type: IrType,
|
||||||
override val isVar: Boolean
|
override val isVar: Boolean
|
||||||
) :
|
) :
|
||||||
PersistentIrDeclarationBase<LocalDelegatedPropertyCarrier>(startOffset, endOffset, origin),
|
PersistentIrDeclarationBase<LocalDelegatedPropertyCarrier>,
|
||||||
IrLocalDelegatedProperty,
|
IrLocalDelegatedProperty,
|
||||||
LocalDelegatedPropertyCarrier {
|
LocalDelegatedPropertyCarrier {
|
||||||
|
|
||||||
@@ -42,6 +44,16 @@ internal class PersistentIrLocalDelegatedProperty(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: VariableDescriptorWithAccessors
|
override val descriptor: VariableDescriptorWithAccessors
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+15
-3
@@ -21,14 +21,16 @@ import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
|||||||
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.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.PropertyCarrier
|
||||||
import org.jetbrains.kotlin.ir.descriptors.WrappedPropertyDescriptor
|
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.ir.symbols.IrPropertySymbol
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal abstract class PersistentIrPropertyCommon(
|
internal abstract class PersistentIrPropertyCommon(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override var visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
@@ -38,10 +40,20 @@ internal abstract class PersistentIrPropertyCommon(
|
|||||||
override val isDelegated: Boolean,
|
override val isDelegated: Boolean,
|
||||||
override val isExternal: Boolean,
|
override val isExternal: Boolean,
|
||||||
override val isExpect: Boolean,
|
override val isExpect: Boolean,
|
||||||
) : PersistentIrDeclarationBase<PropertyCarrier>(startOffset, endOffset, origin),
|
) : PersistentIrDeclarationBase<PropertyCarrier>,
|
||||||
IrProperty,
|
IrProperty,
|
||||||
PropertyCarrier {
|
PropertyCarrier {
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
override var backingFieldField: IrField? = null
|
override var backingFieldField: IrField? = null
|
||||||
|
|
||||||
override var backingField: IrField?
|
override var backingField: IrField?
|
||||||
|
|||||||
+16
-6
@@ -8,17 +8,17 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
||||||
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.IrDeclarationOrigin
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeAlias
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeAliasCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeAliasSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class PersistentIrTypeAlias(
|
internal class PersistentIrTypeAlias(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val symbol: IrTypeAliasSymbol,
|
override val symbol: IrTypeAliasSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
override var visibility: Visibility,
|
override var visibility: Visibility,
|
||||||
@@ -26,7 +26,7 @@ internal class PersistentIrTypeAlias(
|
|||||||
override val isActual: Boolean,
|
override val isActual: Boolean,
|
||||||
origin: IrDeclarationOrigin
|
origin: IrDeclarationOrigin
|
||||||
) :
|
) :
|
||||||
PersistentIrDeclarationBase<TypeAliasCarrier>(startOffset, endOffset, origin),
|
PersistentIrDeclarationBase<TypeAliasCarrier>,
|
||||||
IrTypeAlias,
|
IrTypeAlias,
|
||||||
TypeAliasCarrier {
|
TypeAliasCarrier {
|
||||||
|
|
||||||
@@ -34,6 +34,16 @@ internal class PersistentIrTypeAlias(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: TypeAliasDescriptor
|
override val descriptor: TypeAliasDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+17
-3
@@ -19,8 +19,12 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
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.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
import org.jetbrains.kotlin.ir.declarations.IrTypeParameter
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.TypeParameterCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -28,8 +32,8 @@ import org.jetbrains.kotlin.types.Variance
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
internal class PersistentIrTypeParameter(
|
internal class PersistentIrTypeParameter(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrTypeParameterSymbol,
|
override val symbol: IrTypeParameterSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -37,7 +41,7 @@ internal class PersistentIrTypeParameter(
|
|||||||
override val isReified: Boolean,
|
override val isReified: Boolean,
|
||||||
override val variance: Variance
|
override val variance: Variance
|
||||||
) :
|
) :
|
||||||
PersistentIrDeclarationBase<TypeParameterCarrier>(startOffset, endOffset, origin),
|
PersistentIrDeclarationBase<TypeParameterCarrier>,
|
||||||
IrTypeParameter,
|
IrTypeParameter,
|
||||||
TypeParameterCarrier {
|
TypeParameterCarrier {
|
||||||
|
|
||||||
@@ -45,6 +49,16 @@ internal class PersistentIrTypeParameter(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: TypeParameterDescriptor
|
override val descriptor: TypeParameterDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+17
-3
@@ -19,16 +19,20 @@ package org.jetbrains.kotlin.ir.declarations.persistent
|
|||||||
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.ParameterDescriptor
|
||||||
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.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
import org.jetbrains.kotlin.ir.declarations.IrValueParameter
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ValueParameterCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ValueParameterCarrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
internal class PersistentIrValueParameter(
|
internal class PersistentIrValueParameter(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
origin: IrDeclarationOrigin,
|
origin: IrDeclarationOrigin,
|
||||||
override val symbol: IrValueParameterSymbol,
|
override val symbol: IrValueParameterSymbol,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -38,7 +42,7 @@ internal class PersistentIrValueParameter(
|
|||||||
override val isCrossinline: Boolean,
|
override val isCrossinline: Boolean,
|
||||||
override val isNoinline: Boolean
|
override val isNoinline: Boolean
|
||||||
) :
|
) :
|
||||||
PersistentIrDeclarationBase<ValueParameterCarrier>(startOffset, endOffset, origin),
|
PersistentIrDeclarationBase<ValueParameterCarrier>,
|
||||||
IrValueParameter,
|
IrValueParameter,
|
||||||
ValueParameterCarrier {
|
ValueParameterCarrier {
|
||||||
|
|
||||||
@@ -50,6 +54,16 @@ internal class PersistentIrValueParameter(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var parentField: IrDeclarationParent? = null
|
||||||
|
override var originField: IrDeclarationOrigin = origin
|
||||||
|
override var removedOn: Int = Int.MAX_VALUE
|
||||||
|
override var annotationsField: List<IrConstructorCall> = emptyList()
|
||||||
|
|
||||||
override var defaultValueField: IrExpressionBody? = null
|
override var defaultValueField: IrExpressionBody? = null
|
||||||
|
|
||||||
override var defaultValue: IrExpressionBody?
|
override var defaultValue: IrExpressionBody?
|
||||||
|
|||||||
+14
-4
@@ -17,19 +17,29 @@
|
|||||||
package org.jetbrains.kotlin.ir.expressions.persistent
|
package org.jetbrains.kotlin.ir.expressions.persistent
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrBodyBase
|
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrBodyBase
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory
|
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
|
|
||||||
internal class PersistentIrBlockBody(
|
internal class PersistentIrBlockBody(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
initializer: (IrBlockBody.() -> Unit)? = null
|
override var initializer: (PersistentIrBlockBody.() -> Unit)? = null
|
||||||
) :
|
) :
|
||||||
PersistentIrBodyBase<PersistentIrBlockBody>(startOffset, endOffset, initializer),
|
PersistentIrBodyBase<PersistentIrBlockBody>,
|
||||||
IrBlockBody {
|
IrBlockBody {
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var containerField: IrDeclaration? = null
|
||||||
|
|
||||||
constructor(startOffset: Int, endOffset: Int, statements: List<IrStatement>) : this(startOffset, endOffset) {
|
constructor(startOffset: Int, endOffset: Int, statements: List<IrStatement>) : this(startOffset, endOffset) {
|
||||||
statementsField.addAll(statements)
|
statementsField.addAll(statements)
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-4
@@ -16,21 +16,31 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.expressions.persistent
|
package org.jetbrains.kotlin.ir.expressions.persistent
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
import org.jetbrains.kotlin.ir.declarations.IrFactory
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrBodyBase
|
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrBodyBase
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory
|
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
|
|
||||||
internal class PersistentIrExpressionBody private constructor(
|
internal class PersistentIrExpressionBody private constructor(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
private var expressionField: IrExpression? = null,
|
private var expressionField: IrExpression? = null,
|
||||||
initializer: (IrExpressionBody.() -> Unit)? = null
|
override var initializer: (PersistentIrExpressionBody.() -> Unit)? = null
|
||||||
) :
|
) :
|
||||||
PersistentIrBodyBase<PersistentIrExpressionBody>(startOffset, endOffset, initializer),
|
PersistentIrBodyBase<PersistentIrExpressionBody>,
|
||||||
IrExpressionBody {
|
IrExpressionBody {
|
||||||
|
|
||||||
|
override var lastModified: Int = stageController.currentStage
|
||||||
|
override var loweredUpTo: Int = stageController.currentStage
|
||||||
|
override var values: Array<Carrier>? = null
|
||||||
|
override val createdOn: Int = stageController.currentStage
|
||||||
|
|
||||||
|
override var containerField: IrDeclaration? = null
|
||||||
|
|
||||||
constructor(expression: IrExpression) : this(expression.startOffset, expression.endOffset, expression, null)
|
constructor(expression: IrExpression) : this(expression.startOffset, expression.endOffset, expression, null)
|
||||||
|
|
||||||
constructor(startOffset: Int, endOffset: Int, expression: IrExpression) : this(startOffset, endOffset, expression, null)
|
constructor(startOffset: Int, endOffset: Int, expression: IrExpression) : this(startOffset, endOffset, expression, null)
|
||||||
|
|||||||
Reference in New Issue
Block a user