PIR: minor restructuring
This commit is contained in:
+3
-13
@@ -1,19 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
*
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
* 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
|
package org.jetbrains.kotlin.ir.declarations.persistent
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
|||||||
+2
-2
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
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.Carrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorCarrier
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.ErrorDeclarationCarrier
|
||||||
import org.jetbrains.kotlin.ir.declarations.stageController
|
import org.jetbrains.kotlin.ir.declarations.stageController
|
||||||
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
@@ -32,7 +32,7 @@ internal class PersistentIrErrorDeclaration(
|
|||||||
override val startOffset: Int,
|
override val startOffset: Int,
|
||||||
override val endOffset: Int,
|
override val endOffset: Int,
|
||||||
private val _descriptor: DeclarationDescriptor?
|
private val _descriptor: DeclarationDescriptor?
|
||||||
) : PersistentIrDeclarationBase<ErrorCarrier>, IrErrorDeclaration(), ErrorCarrier {
|
) : PersistentIrDeclarationBase<ErrorDeclarationCarrier>, IrErrorDeclaration(), ErrorDeclarationCarrier {
|
||||||
override val descriptor: DeclarationDescriptor
|
override val descriptor: DeclarationDescriptor
|
||||||
get() = _descriptor ?: this.toIrBasedDescriptor()
|
get() = _descriptor ?: this.toIrBasedDescriptor()
|
||||||
|
|
||||||
|
|||||||
+1
-170
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -10,181 +10,12 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
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.FunctionCarrier
|
|
||||||
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
|
||||||
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.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.ir.types.impl.IrUninitializedType
|
|
||||||
import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
internal abstract class PersistentIrFunctionCommon(
|
|
||||||
override val startOffset: Int,
|
|
||||||
override val endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
override val name: Name,
|
|
||||||
visibility: DescriptorVisibility,
|
|
||||||
returnType: IrType,
|
|
||||||
override val isInline: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
override val isTailrec: Boolean,
|
|
||||||
override val isSuspend: Boolean,
|
|
||||||
override val isOperator: Boolean,
|
|
||||||
override val isInfix: Boolean,
|
|
||||||
override val isExpect: Boolean,
|
|
||||||
override val containerSource: DeserializedContainerSource? = null
|
|
||||||
) : IrSimpleFunction(),
|
|
||||||
PersistentIrDeclarationBase<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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
final override var returnType: IrType
|
|
||||||
get() = returnTypeField.let {
|
|
||||||
if (it !== IrUninitializedType) it else throw ReturnTypeIsNotInitializedException(this)
|
|
||||||
}
|
|
||||||
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: DescriptorVisibility = visibility
|
|
||||||
|
|
||||||
override var visibility: DescriptorVisibility
|
|
||||||
get() = getCarrier().visibilityField
|
|
||||||
set(v) {
|
|
||||||
if (visibility !== v) {
|
|
||||||
setCarrier().visibilityField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol> = emptyList()
|
|
||||||
|
|
||||||
override var overriddenSymbols: List<IrSimpleFunctionSymbol>
|
|
||||||
get() = getCarrier().overriddenSymbolsField
|
|
||||||
set(v) {
|
|
||||||
if (overriddenSymbols !== v) {
|
|
||||||
setCarrier().overriddenSymbolsField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("LeakingThis")
|
|
||||||
override var attributeOwnerIdField: IrAttributeContainer = this
|
|
||||||
|
|
||||||
override var attributeOwnerId: IrAttributeContainer
|
|
||||||
get() = getCarrier().attributeOwnerIdField
|
|
||||||
set(v) {
|
|
||||||
if (attributeOwnerId !== v) {
|
|
||||||
setCarrier().attributeOwnerIdField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var correspondingPropertySymbolField: IrPropertySymbol? = null
|
|
||||||
|
|
||||||
override var correspondingPropertySymbol: IrPropertySymbol?
|
|
||||||
get() = getCarrier().correspondingPropertySymbolField
|
|
||||||
set(v) {
|
|
||||||
if (correspondingPropertySymbol !== v) {
|
|
||||||
setCarrier().correspondingPropertySymbolField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternalField: Boolean = isExternal
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
|
||||||
get() = getCarrier().isExternalField
|
|
||||||
set(v) {
|
|
||||||
if (isExternal != v) {
|
|
||||||
setCarrier().isExternalField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class PersistentIrFunction(
|
internal class PersistentIrFunction(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
|
|||||||
+182
@@ -0,0 +1,182 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.ir.declarations.persistent
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.Carrier
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier
|
||||||
|
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.IrSimpleFunctionSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
|
||||||
|
import org.jetbrains.kotlin.ir.types.impl.ReturnTypeIsNotInitializedException
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
|
internal abstract class PersistentIrFunctionCommon(
|
||||||
|
override val startOffset: Int,
|
||||||
|
override val endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
override val name: Name,
|
||||||
|
visibility: DescriptorVisibility,
|
||||||
|
returnType: IrType,
|
||||||
|
override val isInline: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
override val isTailrec: Boolean,
|
||||||
|
override val isSuspend: Boolean,
|
||||||
|
override val isOperator: Boolean,
|
||||||
|
override val isInfix: Boolean,
|
||||||
|
override val isExpect: Boolean,
|
||||||
|
override val containerSource: DeserializedContainerSource? = null
|
||||||
|
) : IrSimpleFunction(),
|
||||||
|
PersistentIrDeclarationBase<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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final override var returnType: IrType
|
||||||
|
get() = returnTypeField.let {
|
||||||
|
if (it !== IrUninitializedType) it else throw ReturnTypeIsNotInitializedException(this)
|
||||||
|
}
|
||||||
|
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: DescriptorVisibility = visibility
|
||||||
|
|
||||||
|
override var visibility: DescriptorVisibility
|
||||||
|
get() = getCarrier().visibilityField
|
||||||
|
set(v) {
|
||||||
|
if (visibility !== v) {
|
||||||
|
setCarrier().visibilityField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var overriddenSymbolsField: List<IrSimpleFunctionSymbol> = emptyList()
|
||||||
|
|
||||||
|
override var overriddenSymbols: List<IrSimpleFunctionSymbol>
|
||||||
|
get() = getCarrier().overriddenSymbolsField
|
||||||
|
set(v) {
|
||||||
|
if (overriddenSymbols !== v) {
|
||||||
|
setCarrier().overriddenSymbolsField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("LeakingThis")
|
||||||
|
override var attributeOwnerIdField: IrAttributeContainer = this
|
||||||
|
|
||||||
|
override var attributeOwnerId: IrAttributeContainer
|
||||||
|
get() = getCarrier().attributeOwnerIdField
|
||||||
|
set(v) {
|
||||||
|
if (attributeOwnerId !== v) {
|
||||||
|
setCarrier().attributeOwnerIdField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var correspondingPropertySymbolField: IrPropertySymbol? = null
|
||||||
|
|
||||||
|
override var correspondingPropertySymbol: IrPropertySymbol?
|
||||||
|
get() = getCarrier().correspondingPropertySymbolField
|
||||||
|
set(v) {
|
||||||
|
if (correspondingPropertySymbol !== v) {
|
||||||
|
setCarrier().correspondingPropertySymbolField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var isExternalField: Boolean = isExternal
|
||||||
|
|
||||||
|
override var isExternal: Boolean
|
||||||
|
get() = getCarrier().isExternalField
|
||||||
|
set(v) {
|
||||||
|
if (isExternal != v) {
|
||||||
|
setCarrier().isExternalField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-102
@@ -1,19 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
*
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
* 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
|
package org.jetbrains.kotlin.ir.declarations.persistent
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
@@ -29,95 +19,6 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
internal abstract class PersistentIrPropertyCommon(
|
|
||||||
override val startOffset: Int,
|
|
||||||
override val endOffset: Int,
|
|
||||||
origin: IrDeclarationOrigin,
|
|
||||||
override val name: Name,
|
|
||||||
override var visibility: DescriptorVisibility,
|
|
||||||
override val isVar: Boolean,
|
|
||||||
override val isConst: Boolean,
|
|
||||||
override val isLateinit: Boolean,
|
|
||||||
override val isDelegated: Boolean,
|
|
||||||
isExternal: Boolean,
|
|
||||||
override val isExpect: Boolean,
|
|
||||||
override val containerSource: DeserializedContainerSource?,
|
|
||||||
) : IrProperty(),
|
|
||||||
PersistentIrDeclarationBase<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 backingField: IrField?
|
|
||||||
get() = getCarrier().backingFieldField
|
|
||||||
set(v) {
|
|
||||||
if (backingField !== v) {
|
|
||||||
setCarrier().backingFieldField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var getterField: IrSimpleFunction? = null
|
|
||||||
|
|
||||||
override var getter: IrSimpleFunction?
|
|
||||||
get() = getCarrier().getterField
|
|
||||||
set(v) {
|
|
||||||
if (getter !== v) {
|
|
||||||
setCarrier().getterField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var setterField: IrSimpleFunction? = null
|
|
||||||
|
|
||||||
override var setter: IrSimpleFunction?
|
|
||||||
get() = getCarrier().setterField
|
|
||||||
set(v) {
|
|
||||||
if (setter !== v) {
|
|
||||||
setCarrier().setterField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var metadataField: MetadataSource? = null
|
|
||||||
|
|
||||||
override var metadata: MetadataSource?
|
|
||||||
get() = getCarrier().metadataField
|
|
||||||
set(v) {
|
|
||||||
if (metadata !== v) {
|
|
||||||
setCarrier().metadataField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("LeakingThis")
|
|
||||||
override var attributeOwnerIdField: IrAttributeContainer = this
|
|
||||||
|
|
||||||
override var attributeOwnerId: IrAttributeContainer
|
|
||||||
get() = getCarrier().attributeOwnerIdField
|
|
||||||
set(v) {
|
|
||||||
if (attributeOwnerId !== v) {
|
|
||||||
setCarrier().attributeOwnerIdField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override var isExternalField: Boolean = isExternal
|
|
||||||
|
|
||||||
override var isExternal: Boolean
|
|
||||||
get() = getCarrier().isExternalField
|
|
||||||
set(v) {
|
|
||||||
if (isExternal != v) {
|
|
||||||
setCarrier().isExternalField = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal class PersistentIrProperty(
|
internal class PersistentIrProperty(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
|
|||||||
+103
@@ -0,0 +1,103 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.ir.declarations.persistent
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
|
||||||
|
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.expressions.IrConstructorCall
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
|
|
||||||
|
internal abstract class PersistentIrPropertyCommon(
|
||||||
|
override val startOffset: Int,
|
||||||
|
override val endOffset: Int,
|
||||||
|
origin: IrDeclarationOrigin,
|
||||||
|
override val name: Name,
|
||||||
|
override var visibility: DescriptorVisibility,
|
||||||
|
override val isVar: Boolean,
|
||||||
|
override val isConst: Boolean,
|
||||||
|
override val isLateinit: Boolean,
|
||||||
|
override val isDelegated: Boolean,
|
||||||
|
isExternal: Boolean,
|
||||||
|
override val isExpect: Boolean,
|
||||||
|
override val containerSource: DeserializedContainerSource?,
|
||||||
|
) : IrProperty(),
|
||||||
|
PersistentIrDeclarationBase<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 backingField: IrField?
|
||||||
|
get() = getCarrier().backingFieldField
|
||||||
|
set(v) {
|
||||||
|
if (backingField !== v) {
|
||||||
|
setCarrier().backingFieldField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var getterField: IrSimpleFunction? = null
|
||||||
|
|
||||||
|
override var getter: IrSimpleFunction?
|
||||||
|
get() = getCarrier().getterField
|
||||||
|
set(v) {
|
||||||
|
if (getter !== v) {
|
||||||
|
setCarrier().getterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var setterField: IrSimpleFunction? = null
|
||||||
|
|
||||||
|
override var setter: IrSimpleFunction?
|
||||||
|
get() = getCarrier().setterField
|
||||||
|
set(v) {
|
||||||
|
if (setter !== v) {
|
||||||
|
setCarrier().setterField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var metadataField: MetadataSource? = null
|
||||||
|
|
||||||
|
override var metadata: MetadataSource?
|
||||||
|
get() = getCarrier().metadataField
|
||||||
|
set(v) {
|
||||||
|
if (metadata !== v) {
|
||||||
|
setCarrier().metadataField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("LeakingThis")
|
||||||
|
override var attributeOwnerIdField: IrAttributeContainer = this
|
||||||
|
|
||||||
|
override var attributeOwnerId: IrAttributeContainer
|
||||||
|
get() = getCarrier().attributeOwnerIdField
|
||||||
|
set(v) {
|
||||||
|
if (attributeOwnerId !== v) {
|
||||||
|
setCarrier().attributeOwnerIdField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override var isExternalField: Boolean = isExternal
|
||||||
|
|
||||||
|
override var isExternal: Boolean
|
||||||
|
get() = getCarrier().isExternalField
|
||||||
|
set(v) {
|
||||||
|
if (isExternal != v) {
|
||||||
|
setCarrier().isExternalField = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
-5
@@ -9,15 +9,15 @@ import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
|
|||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
import org.jetbrains.kotlin.ir.declarations.IrDeclarationParent
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
|
|
||||||
internal interface ErrorCarrier : DeclarationCarrier {
|
internal interface ErrorDeclarationCarrier : DeclarationCarrier {
|
||||||
override fun clone(): ErrorCarrier {
|
override fun clone(): ErrorDeclarationCarrier {
|
||||||
return ErrorCarrierImpl(lastModified, parentField, originField, annotationsField)
|
return ErrorDeclarationCarrierImpl(lastModified, parentField, originField, annotationsField)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class ErrorCarrierImpl(
|
internal class ErrorDeclarationCarrierImpl(
|
||||||
override val lastModified: Int,
|
override val lastModified: Int,
|
||||||
override var parentField: IrDeclarationParent?,
|
override var parentField: IrDeclarationParent?,
|
||||||
override var originField: IrDeclarationOrigin,
|
override var originField: IrDeclarationOrigin,
|
||||||
override var annotationsField: List<IrConstructorCall>
|
override var annotationsField: List<IrConstructorCall>
|
||||||
) : ErrorCarrier
|
) : ErrorDeclarationCarrier
|
||||||
Reference in New Issue
Block a user