org.jetbrains.kotlin.ir.declarations.persistent.carriers.FunctionCarrier.kt Maven / Gradle / Ivy
/*
* Copyright 2010-2019 JetBrains s.r.o. 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.carriers
import org.jetbrains.kotlin.descriptors.DescriptorVisibility
import org.jetbrains.kotlin.ir.declarations.*
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
internal interface FunctionCarrier : FunctionBaseCarrier {
var correspondingPropertySymbolField: IrPropertySymbol?
var overriddenSymbolsField: List
var attributeOwnerIdField: IrAttributeContainer
override fun clone(): FunctionCarrier {
return FunctionCarrierImpl(
lastModified,
parentField,
originField,
annotationsField,
returnTypeFieldField,
dispatchReceiverParameterField,
extensionReceiverParameterField,
bodyField,
metadataField,
visibilityField,
typeParametersField,
valueParametersField,
correspondingPropertySymbolField,
overriddenSymbolsField,
attributeOwnerIdField
)
}
}
internal class FunctionCarrierImpl(
override val lastModified: Int,
override var parentField: IrDeclarationParent?,
override var originField: IrDeclarationOrigin,
override var annotationsField: List,
override var returnTypeFieldField: IrType,
override var dispatchReceiverParameterField: IrValueParameter?,
override var extensionReceiverParameterField: IrValueParameter?,
override var bodyField: IrBody?,
override var metadataField: MetadataSource?,
override var visibilityField: DescriptorVisibility,
override var typeParametersField: List,
override var valueParametersField: List,
override var correspondingPropertySymbolField: IrPropertySymbol?,
override var overriddenSymbolsField: List,
override var attributeOwnerIdField: IrAttributeContainer
) : FunctionCarrier