Fix wrapped descriptors
This commit is contained in:
committed by
Igor Chevdar
parent
2b40ecfd29
commit
d363763420
+205
-3
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.descriptors
|
package org.jetbrains.kotlin.backend.common.descriptors
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
import org.jetbrains.kotlin.descriptors.annotations.Annotations
|
||||||
import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl
|
import org.jetbrains.kotlin.descriptors.impl.ReceiverParameterDescriptorImpl
|
||||||
@@ -529,12 +528,103 @@ open class WrappedClassDescriptor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open class WrappedEnumEntryDescriptor(
|
||||||
|
annotations: Annotations = Annotations.EMPTY,
|
||||||
|
private val sourceElement: SourceElement = SourceElement.NO_SOURCE
|
||||||
|
) : ClassDescriptor, WrappedDeclarationDescriptor<IrEnumEntry>(annotations) {
|
||||||
|
override fun getName() = owner.name
|
||||||
|
|
||||||
|
override fun getMemberScope(typeArguments: MutableList<out TypeProjection>) = MemberScope.Empty
|
||||||
|
|
||||||
|
override fun getMemberScope(typeSubstitution: TypeSubstitution) = MemberScope.Empty
|
||||||
|
|
||||||
|
override fun getUnsubstitutedMemberScope() = MemberScope.Empty
|
||||||
|
|
||||||
|
override fun getUnsubstitutedInnerClassesScope() = MemberScope.Empty
|
||||||
|
|
||||||
|
override fun getStaticScope() = MemberScope.Empty
|
||||||
|
|
||||||
|
override fun getSource() = sourceElement
|
||||||
|
|
||||||
|
override fun getConstructors() =
|
||||||
|
getCorrespondingClass().declarations.asSequence().filterIsInstance<IrConstructor>().map { it.descriptor }.toList()
|
||||||
|
|
||||||
|
private fun getCorrespondingClass() = owner.correspondingClass ?: (owner.parent as IrClass)
|
||||||
|
|
||||||
|
override fun getContainingDeclaration() = (owner.parent as IrSymbolOwner).symbol.descriptor
|
||||||
|
|
||||||
|
|
||||||
|
private val _defaultType: SimpleType by lazy {
|
||||||
|
TypeUtils.makeUnsubstitutedType(this, unsubstitutedMemberScope)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getDefaultType(): SimpleType = _defaultType
|
||||||
|
|
||||||
|
override fun getKind() = ClassKind.ENUM_ENTRY
|
||||||
|
|
||||||
|
override fun getModality() = Modality.FINAL
|
||||||
|
|
||||||
|
override fun getCompanionObjectDescriptor() = null
|
||||||
|
|
||||||
|
override fun getVisibility() = Visibilities.DEFAULT_VISIBILITY
|
||||||
|
|
||||||
|
override fun isCompanionObject() = false
|
||||||
|
|
||||||
|
override fun isData() = false
|
||||||
|
|
||||||
|
override fun isInline() = false
|
||||||
|
|
||||||
|
override fun getThisAsReceiverParameter() = (owner.parent as IrClass).descriptor.thisAsReceiverParameter
|
||||||
|
|
||||||
|
override fun getUnsubstitutedPrimaryConstructor(): ClassConstructorDescriptor? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getDeclaredTypeParameters() = emptyList()
|
||||||
|
|
||||||
|
override fun getSealedSubclasses(): Collection<ClassDescriptor> {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getOriginal() = this
|
||||||
|
|
||||||
|
override fun isExpect() = false
|
||||||
|
|
||||||
|
override fun substitute(substitutor: TypeSubstitutor): ClassifierDescriptorWithTypeParameters {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isActual() = false
|
||||||
|
|
||||||
|
private val _typeConstructor: TypeConstructor by lazy {
|
||||||
|
ClassTypeConstructorImpl(
|
||||||
|
this,
|
||||||
|
emptyList(),
|
||||||
|
getCorrespondingClass().superTypes.map { it.toKotlinType() },
|
||||||
|
LockBasedStorageManager.NO_LOCKS
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTypeConstructor(): TypeConstructor = _typeConstructor
|
||||||
|
|
||||||
|
override fun isInner() = false
|
||||||
|
|
||||||
|
override fun isExternal() = false
|
||||||
|
|
||||||
|
override fun <R : Any?, D : Any?> accept(visitor: DeclarationDescriptorVisitor<R, D>?, data: D): R =
|
||||||
|
visitor!!.visitClassDescriptor(this, data)
|
||||||
|
|
||||||
|
override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) {
|
||||||
|
visitor!!.visitClassDescriptor(this, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
open class WrappedPropertyDescriptor(
|
open class WrappedPropertyDescriptor(
|
||||||
annotations: Annotations = Annotations.EMPTY,
|
annotations: Annotations = Annotations.EMPTY,
|
||||||
private val sourceElement: SourceElement = SourceElement.NO_SOURCE
|
private val sourceElement: SourceElement = SourceElement.NO_SOURCE
|
||||||
) : PropertyDescriptor, WrappedDeclarationDescriptor<IrField>(annotations) {
|
) : PropertyDescriptor, WrappedDeclarationDescriptor<IrProperty>(annotations) {
|
||||||
override fun getModality() = owner.correspondingProperty?.modality ?: Modality.FINAL
|
override fun getModality() = owner.modality
|
||||||
|
|
||||||
override fun setOverriddenDescriptors(overriddenDescriptors: MutableCollection<out CallableMemberDescriptor>) {
|
override fun setOverriddenDescriptors(overriddenDescriptors: MutableCollection<out CallableMemberDescriptor>) {
|
||||||
TODO("not implemented")
|
TODO("not implemented")
|
||||||
@@ -572,6 +662,118 @@ open class WrappedPropertyDescriptor(
|
|||||||
TODO("not implemented")
|
TODO("not implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getAccessors(): MutableList<PropertyAccessorDescriptor> = listOfNotNull(
|
||||||
|
owner.getter?.descriptor as? PropertyAccessorDescriptor,
|
||||||
|
owner.setter?.descriptor as? PropertyAccessorDescriptor
|
||||||
|
).toMutableList()
|
||||||
|
|
||||||
|
override fun getTypeParameters() = emptyList()
|
||||||
|
|
||||||
|
override fun getVisibility() = owner.visibility
|
||||||
|
|
||||||
|
override val setter: PropertySetterDescriptor? get() = owner.setter?.descriptor as? PropertySetterDescriptor
|
||||||
|
|
||||||
|
override fun getOriginal() = this
|
||||||
|
|
||||||
|
override fun isExpect() = false
|
||||||
|
|
||||||
|
override fun substitute(substitutor: TypeSubstitutor): PropertyDescriptor {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isActual() = false
|
||||||
|
|
||||||
|
override fun getReturnType() = (owner.getter?.returnType ?: owner.backingField?.type!!).toKotlinType()
|
||||||
|
|
||||||
|
override fun hasStableParameterNames() = false
|
||||||
|
|
||||||
|
override fun getType(): KotlinType = returnType
|
||||||
|
|
||||||
|
override fun isVar() = owner.isVar
|
||||||
|
|
||||||
|
override fun getDispatchReceiverParameter(): ReceiverParameterDescriptor? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isConst() = owner.isConst
|
||||||
|
|
||||||
|
override fun getContainingDeclaration() = (owner.parent as IrSymbolOwner).symbol.descriptor
|
||||||
|
|
||||||
|
override fun isLateInit() = owner.isLateinit
|
||||||
|
|
||||||
|
override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isExternal() = owner.isExternal
|
||||||
|
|
||||||
|
override fun <R : Any?, D : Any?> accept(visitor: DeclarationDescriptorVisitor<R, D>?, data: D) =
|
||||||
|
visitor!!.visitPropertyDescriptor(this, data)
|
||||||
|
|
||||||
|
override fun acceptVoid(visitor: DeclarationDescriptorVisitor<Void, Void>?) {
|
||||||
|
visitor!!.visitPropertyDescriptor(this, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
override val getter: PropertyGetterDescriptor? get() = owner.getter?.descriptor as? PropertyGetterDescriptor
|
||||||
|
|
||||||
|
override fun newCopyBuilder(): CallableMemberDescriptor.CopyBuilder<out PropertyDescriptor> {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override val isDelegated get() = owner.isDelegated
|
||||||
|
|
||||||
|
override fun getBackingField(): FieldDescriptor? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getDelegateField(): FieldDescriptor? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <V : Any?> getUserData(key: CallableDescriptor.UserDataKey<V>?): V? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
open class WrappedFieldDescriptor(
|
||||||
|
annotations: Annotations = Annotations.EMPTY,
|
||||||
|
private val sourceElement: SourceElement = SourceElement.NO_SOURCE
|
||||||
|
) : PropertyDescriptor, WrappedDeclarationDescriptor<IrField>(annotations) {
|
||||||
|
override fun getModality() = if (owner.isFinal) Modality.FINAL else Modality.OPEN
|
||||||
|
|
||||||
|
override fun setOverriddenDescriptors(overriddenDescriptors: MutableCollection<out CallableMemberDescriptor>) {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getKind() = CallableMemberDescriptor.Kind.SYNTHESIZED
|
||||||
|
|
||||||
|
override fun getName() = owner.name
|
||||||
|
|
||||||
|
override fun getSource() = sourceElement
|
||||||
|
|
||||||
|
override fun hasSynthesizedParameterNames() = false
|
||||||
|
|
||||||
|
override fun getOverriddenDescriptors(): MutableCollection<out PropertyDescriptor> =
|
||||||
|
owner.overriddenSymbols.map { it.descriptor }.toMutableList()
|
||||||
|
|
||||||
|
override fun copy(
|
||||||
|
newOwner: DeclarationDescriptor?,
|
||||||
|
modality: Modality?,
|
||||||
|
visibility: Visibility?,
|
||||||
|
kind: CallableMemberDescriptor.Kind?,
|
||||||
|
copyOverrides: Boolean
|
||||||
|
): CallableMemberDescriptor {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getValueParameters(): MutableList<ValueParameterDescriptor> = mutableListOf()
|
||||||
|
|
||||||
|
override fun getCompileTimeInitializer(): ConstantValue<*>? {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isSetterProjectedOut(): Boolean {
|
||||||
|
TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
override fun getAccessors(): MutableList<PropertyAccessorDescriptor> = mutableListOf()
|
override fun getAccessors(): MutableList<PropertyAccessorDescriptor> = mutableListOf()
|
||||||
|
|
||||||
override fun getTypeParameters() = emptyList()
|
override fun getTypeParameters() = emptyList()
|
||||||
|
|||||||
+1
-1
@@ -624,7 +624,7 @@ class LocalDeclarationsLowering(
|
|||||||
parent: IrClass,
|
parent: IrClass,
|
||||||
fieldType: IrType
|
fieldType: IrType
|
||||||
): IrField {
|
): IrField {
|
||||||
val descriptor = WrappedPropertyDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
val symbol = IrFieldSymbolImpl(descriptor)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
startOffset,
|
startOffset,
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.backend.js
|
package org.jetbrains.kotlin.backend.js
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.ir.DeclarationFactory
|
import org.jetbrains.kotlin.backend.common.ir.DeclarationFactory
|
||||||
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
||||||
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
|
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
|
||||||
@@ -51,7 +51,7 @@ class JsDeclarationFactory : DeclarationFactory {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createPropertyWithBackingField(name: Name, visibility: Visibility, parent: IrClass, fieldType: IrType, origin: IrDeclarationOrigin): IrField {
|
private fun createPropertyWithBackingField(name: Name, visibility: Visibility, parent: IrClass, fieldType: IrType, origin: IrDeclarationOrigin): IrField {
|
||||||
val descriptor = WrappedPropertyDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
val symbol = IrFieldSymbolImpl(descriptor)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
|
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.ir.DeclarationFactory
|
import org.jetbrains.kotlin.backend.common.ir.DeclarationFactory
|
||||||
import org.jetbrains.kotlin.backend.common.ir.SharedVariablesManager
|
import org.jetbrains.kotlin.backend.common.ir.SharedVariablesManager
|
||||||
@@ -143,7 +143,7 @@ class JsSharedVariablesManager(val builtIns: IrBuiltIns, val implicitDeclaration
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createClosureBoxPropertyDeclaration(): IrField {
|
private fun createClosureBoxPropertyDeclaration(): IrField {
|
||||||
val descriptor = WrappedPropertyDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
val symbol = IrFieldSymbolImpl(descriptor)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
val fieldName = Name.identifier("v")
|
val fieldName = Name.identifier("v")
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.ir.backend.js.lower
|
|||||||
import org.jetbrains.kotlin.backend.common.DeclarationContainerLoweringPass
|
import org.jetbrains.kotlin.backend.common.DeclarationContainerLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom
|
import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.common.lower.irBlockBody
|
import org.jetbrains.kotlin.backend.common.lower.irBlockBody
|
||||||
@@ -60,7 +60,7 @@ class EnumUsageLowering(val context: JsIrBackendContext) : FileLoweringPass {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createFieldForEntry(entry: IrEnumEntry, irClass: IrClass): IrField {
|
private fun createFieldForEntry(entry: IrEnumEntry, irClass: IrClass): IrField {
|
||||||
val descriptor = WrappedPropertyDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
val symbol = IrFieldSymbolImpl(descriptor)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
return entry.run {
|
return entry.run {
|
||||||
IrFieldImpl(startOffset, endOffset, origin, symbol, name, irClass.defaultType, Visibilities.PUBLIC, false, true, true).also {
|
IrFieldImpl(startOffset, endOffset, origin, symbol, name, irClass.defaultType, Visibilities.PUBLIC, false, true, true).also {
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js.lower
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
import org.jetbrains.kotlin.backend.common.FileLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.atMostOne
|
import org.jetbrains.kotlin.backend.common.atMostOne
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
import org.jetbrains.kotlin.backend.common.ir.copyTo
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
@@ -157,7 +157,7 @@ class ThrowableSuccessorsLowering(context: JsIrBackendContext) : FileLoweringPas
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun createBackingField(declaration: IrClass, name: Name, type: IrType): IrField {
|
private fun createBackingField(declaration: IrClass, name: Name, type: IrType): IrField {
|
||||||
val fieldDescriptor = WrappedPropertyDescriptor()
|
val fieldDescriptor = WrappedFieldDescriptor()
|
||||||
val fieldSymbol = IrFieldSymbolImpl(fieldDescriptor)
|
val fieldSymbol = IrFieldSymbolImpl(fieldDescriptor)
|
||||||
val fieldDeclaration = IrFieldImpl(
|
val fieldDeclaration = IrFieldImpl(
|
||||||
UNDEFINED_OFFSET,
|
UNDEFINED_OFFSET,
|
||||||
|
|||||||
+1
-1
@@ -763,7 +763,7 @@ internal class SuspendFunctionsLowering(val context: JsIrBackendContext): FileLo
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun addField(name: Name, type: IrType, isMutable: Boolean): IrField {
|
private fun addField(name: Name, type: IrType, isMutable: Boolean): IrField {
|
||||||
val descriptor = WrappedPropertyDescriptor()
|
val descriptor = WrappedFieldDescriptor()
|
||||||
val symbol = IrFieldSymbolImpl(descriptor)
|
val symbol = IrFieldSymbolImpl(descriptor)
|
||||||
return IrFieldImpl(
|
return IrFieldImpl(
|
||||||
irFunction.startOffset,
|
irFunction.startOffset,
|
||||||
|
|||||||
+2
-2
@@ -90,7 +90,7 @@ internal class DeepCopyIrTreeWithSymbolsForInliner(val context: Context,
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitField(declaration: IrField) {
|
override fun visitField(declaration: IrField) {
|
||||||
(declaration.descriptor as WrappedPropertyDescriptor).bind(declaration)
|
(declaration.descriptor as WrappedFieldDescriptor).bind(declaration)
|
||||||
declaration.acceptChildrenVoid(this)
|
declaration.acceptChildrenVoid(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,7 +149,7 @@ internal class DeepCopyIrTreeWithSymbolsForInliner(val context: Context,
|
|||||||
WrappedClassDescriptor(descriptor.annotations, descriptor.source)
|
WrappedClassDescriptor(descriptor.annotations, descriptor.source)
|
||||||
|
|
||||||
override fun remapDeclaredField(descriptor: PropertyDescriptor) =
|
override fun remapDeclaredField(descriptor: PropertyDescriptor) =
|
||||||
WrappedPropertyDescriptor(descriptor.annotations, descriptor.source)
|
WrappedFieldDescriptor(descriptor.annotations, descriptor.source)
|
||||||
|
|
||||||
override fun remapDeclaredSimpleFunction(descriptor: FunctionDescriptor) =
|
override fun remapDeclaredSimpleFunction(descriptor: FunctionDescriptor) =
|
||||||
WrappedSimpleFunctionDescriptor(descriptor.annotations, descriptor.source)
|
WrappedSimpleFunctionDescriptor(descriptor.annotations, descriptor.source)
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
import org.jetbrains.kotlin.backend.common.ClassLoweringPass
|
||||||
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedPropertyDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedFieldDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
import org.jetbrains.kotlin.backend.common.descriptors.WrappedVariableDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.lower.replaceThisByStaticReference
|
import org.jetbrains.kotlin.backend.common.lower.replaceThisByStaticReference
|
||||||
import org.jetbrains.kotlin.backend.common.makePhase
|
import org.jetbrains.kotlin.backend.common.makePhase
|
||||||
@@ -170,7 +170,7 @@ class MoveCompanionObjectFieldsLowering(val context: CommonBackendContext) : Cla
|
|||||||
oldField.name
|
oldField.name
|
||||||
else
|
else
|
||||||
Name.identifier(oldField.name.toString() + "\$companion")
|
Name.identifier(oldField.name.toString() + "\$companion")
|
||||||
val descriptor = WrappedPropertyDescriptor(oldField.descriptor.annotations, oldField.descriptor.source)
|
val descriptor = WrappedFieldDescriptor(oldField.descriptor.annotations, oldField.descriptor.source)
|
||||||
val field = IrFieldImpl(
|
val field = IrFieldImpl(
|
||||||
oldField.startOffset, oldField.endOffset,
|
oldField.startOffset, oldField.endOffset,
|
||||||
IrDeclarationOrigin.PROPERTY_BACKING_FIELD,
|
IrDeclarationOrigin.PROPERTY_BACKING_FIELD,
|
||||||
|
|||||||
Reference in New Issue
Block a user