diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/WrappedDescriptors.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/WrappedDescriptors.kt index 734ba5c0211..939db0e3936 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/WrappedDescriptors.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/WrappedDescriptors.kt @@ -32,11 +32,11 @@ import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.types.* @OptIn(ObsoleteDescriptorBasedAPI::class) -abstract class WrappedDeclarationDescriptor(annotations: Annotations) : DeclarationDescriptor { - private val annotations_ = annotations - +abstract class WrappedDeclarationDescriptor : DeclarationDescriptorWithSource { override val annotations: Annotations - get() = if (annotations_ != Annotations.EMPTY) annotations_ else annotationsFromOwner + get() = annotationsFromOwner + + override fun getSource(): SourceElement = SourceElement.NO_SOURCE private val annotationsFromOwner by lazy { val ownerAnnotations = (owner as? IrAnnotationContainer)?.annotations ?: return@lazy Annotations.EMPTY @@ -107,10 +107,7 @@ abstract class WrappedDeclarationDescriptor(annotations: Anno fun isBound(): Boolean = _owner != null } -abstract class WrappedCallableDescriptor( - annotations: Annotations, - private val sourceElement: SourceElement -) : CallableDescriptor, WrappedDeclarationDescriptor(annotations) { +abstract class WrappedCallableDescriptor : CallableDescriptor, WrappedDeclarationDescriptor() { override fun getOriginal() = this override fun substitute(substitutor: TypeSubstitutor): CallableDescriptor = @@ -120,7 +117,7 @@ abstract class WrappedCallableDescriptor( TODO("not implemented") } - override fun getSource() = sourceElement + override fun getSource() = SourceElement.NO_SOURCE override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? = null @@ -162,10 +159,7 @@ abstract class WrappedCallableDescriptor( // TODO: (Roman Artemev) do not create this kind of descriptor for dispatch receiver parameters // WrappedReceiverParameterDescriptor should be used instead @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedValueParameterDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : ValueParameterDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedValueParameterDescriptor : ValueParameterDescriptor, WrappedCallableDescriptor() { override val index get() = owner.index override val isCrossinline get() = owner.isCrossinline @@ -207,10 +201,7 @@ open class WrappedValueParameterDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedReceiverParameterDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : ReceiverParameterDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedReceiverParameterDescriptor : ReceiverParameterDescriptor, WrappedCallableDescriptor() { override fun getValue(): ReceiverValue { TODO("not implemented") //To change body of created functions use File | Settings | File Templates. @@ -245,10 +236,7 @@ open class WrappedReceiverParameterDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedTypeParameterDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : TypeParameterDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedTypeParameterDescriptor : TypeParameterDescriptor, WrappedCallableDescriptor() { override fun getName() = owner.name override fun isReified() = owner.isReified @@ -311,10 +299,7 @@ open class WrappedTypeParameterDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedVariableDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : VariableDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedVariableDescriptor : VariableDescriptor, WrappedCallableDescriptor() { override fun getContainingDeclaration() = (owner.parent as IrFunction).descriptor override fun getType() = owner.type.toKotlinType() @@ -347,8 +332,8 @@ open class WrappedVariableDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedVariableDescriptorWithAccessor() : VariableDescriptorWithAccessors, - WrappedCallableDescriptor(Annotations.EMPTY, SourceElement.NO_SOURCE) { +open class WrappedVariableDescriptorWithAccessor : VariableDescriptorWithAccessors, + WrappedCallableDescriptor() { override fun getName(): Name = owner.name override fun substitute(substitutor: TypeSubstitutor): VariableDescriptor { @@ -378,10 +363,7 @@ open class WrappedVariableDescriptorWithAccessor() : VariableDescriptorWithAcces } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedSimpleFunctionDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : SimpleFunctionDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedSimpleFunctionDescriptor : SimpleFunctionDescriptor, WrappedCallableDescriptor() { override fun getOverriddenDescriptors() = owner.overriddenSymbols.map { it.descriptor } @@ -462,10 +444,7 @@ class WrappedFunctionDescriptorWithContainerSource : WrappedSimpleFunctionDescri } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedClassConstructorDescriptor( - annotations: Annotations = Annotations.EMPTY, - sourceElement: SourceElement = SourceElement.NO_SOURCE -) : ClassConstructorDescriptor, WrappedCallableDescriptor(annotations, sourceElement) { +open class WrappedClassConstructorDescriptor : ClassConstructorDescriptor, WrappedCallableDescriptor() { override fun getContainingDeclaration() = (owner.parent as IrClass).descriptor override fun getDispatchReceiverParameter() = owner.dispatchReceiverParameter?.run { @@ -557,10 +536,7 @@ open class WrappedClassConstructorDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedClassDescriptor( - annotations: Annotations = Annotations.EMPTY, - private val sourceElement: SourceElement = SourceElement.NO_SOURCE -) : ClassDescriptor, WrappedDeclarationDescriptor(annotations) { +open class WrappedClassDescriptor : ClassDescriptor, WrappedDeclarationDescriptor() { override fun getName() = owner.name override fun getMemberScope(typeArguments: MutableList) = MemberScope.Empty @@ -573,8 +549,6 @@ open class WrappedClassDescriptor( override fun getStaticScope() = MemberScope.Empty - override fun getSource() = sourceElement - override fun getConstructors() = owner.declarations.filterIsInstance().filter { !it.origin.isSynthetic }.map { it.descriptor }.toList() @@ -686,10 +660,7 @@ class LazyTypeConstructor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedEnumEntryDescriptor( - annotations: Annotations = Annotations.EMPTY, - private val sourceElement: SourceElement = SourceElement.NO_SOURCE -) : ClassDescriptor, WrappedDeclarationDescriptor(annotations) { +open class WrappedEnumEntryDescriptor : ClassDescriptor, WrappedDeclarationDescriptor() { override fun getName() = owner.name override fun getMemberScope(typeArguments: MutableList) = MemberScope.Empty @@ -702,7 +673,7 @@ open class WrappedEnumEntryDescriptor( override fun getStaticScope() = MemberScope.Empty - override fun getSource() = sourceElement + override fun getSource() = SourceElement.NO_SOURCE override fun getConstructors() = getCorrespondingClass().declarations.asSequence().filterIsInstance().map { it.descriptor }.toList() @@ -783,10 +754,7 @@ open class WrappedEnumEntryDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedPropertyDescriptor( - annotations: Annotations = Annotations.EMPTY, - private val sourceElement: SourceElement = SourceElement.NO_SOURCE -) : PropertyDescriptor, WrappedDeclarationDescriptor(annotations) { +open class WrappedPropertyDescriptor : PropertyDescriptor, WrappedDeclarationDescriptor() { override fun getModality() = owner.modality override fun setOverriddenDescriptors(overriddenDescriptors: MutableCollection) { @@ -797,7 +765,7 @@ open class WrappedPropertyDescriptor( override fun getName() = owner.name - override fun getSource() = sourceElement + override fun getSource() = SourceElement.NO_SOURCE override fun hasSynthesizedParameterNames(): Boolean { TODO("not implemented") @@ -894,8 +862,7 @@ class WrappedPropertyDescriptorWithContainerSource : WrappedPropertyDescriptor() } @OptIn(ObsoleteDescriptorBasedAPI::class) -abstract class WrappedPropertyAccessorDescriptor(annotations: Annotations, sourceElement: SourceElement) : - WrappedSimpleFunctionDescriptor(annotations, sourceElement), PropertyAccessorDescriptor { +abstract class WrappedPropertyAccessorDescriptor : WrappedSimpleFunctionDescriptor(), PropertyAccessorDescriptor { override fun isDefault(): Boolean = false override fun getOriginal(): WrappedPropertyAccessorDescriptor = this @@ -907,25 +874,22 @@ abstract class WrappedPropertyAccessorDescriptor(annotations: Annotations, sourc override val correspondingVariable: VariableDescriptorWithAccessors get() = correspondingProperty } -class WrappedPropertyGetterDescriptor(annotations: Annotations, sourceElement: SourceElement) : - WrappedPropertyAccessorDescriptor(annotations, sourceElement), PropertyGetterDescriptor { +class WrappedPropertyGetterDescriptor : + WrappedPropertyAccessorDescriptor(), PropertyGetterDescriptor { override fun getOverriddenDescriptors() = super.getOverriddenDescriptors().map { it as PropertyGetterDescriptor } override fun getOriginal(): WrappedPropertyGetterDescriptor = this } -class WrappedPropertySetterDescriptor(annotations: Annotations, sourceElement: SourceElement) : - WrappedPropertyAccessorDescriptor(annotations, sourceElement), PropertySetterDescriptor { +class WrappedPropertySetterDescriptor : + WrappedPropertyAccessorDescriptor(), PropertySetterDescriptor { override fun getOverriddenDescriptors() = super.getOverriddenDescriptors().map { it as PropertySetterDescriptor } override fun getOriginal(): WrappedPropertySetterDescriptor = this } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedTypeAliasDescriptor( - annotations: Annotations = Annotations.EMPTY, - private val sourceElement: SourceElement = SourceElement.NO_SOURCE -) : WrappedDeclarationDescriptor(annotations), TypeAliasDescriptor { +open class WrappedTypeAliasDescriptor : WrappedDeclarationDescriptor(), TypeAliasDescriptor { override val underlyingType: SimpleType get() = throw UnsupportedOperationException("Unexpected use of WrappedTypeAliasDescriptor $this") @@ -960,7 +924,7 @@ open class WrappedTypeAliasDescriptor( override fun getModality(): Modality = Modality.FINAL - override fun getSource(): SourceElement = sourceElement + override fun getSource(): SourceElement = SourceElement.NO_SOURCE override fun getVisibility(): Visibility = owner.visibility @@ -979,10 +943,7 @@ open class WrappedTypeAliasDescriptor( } @OptIn(ObsoleteDescriptorBasedAPI::class) -open class WrappedFieldDescriptor( - annotations: Annotations = Annotations.EMPTY, - private val sourceElement: SourceElement = SourceElement.NO_SOURCE -) : PropertyDescriptor, WrappedDeclarationDescriptor(annotations) { +open class WrappedFieldDescriptor : PropertyDescriptor, WrappedDeclarationDescriptor() { override fun getModality() = if (owner.isFinal) Modality.FINAL else Modality.OPEN override fun setOverriddenDescriptors(overriddenDescriptors: MutableCollection) { @@ -993,7 +954,7 @@ open class WrappedFieldDescriptor( override fun getName() = owner.name - override fun getSource() = sourceElement + override fun getSource() = SourceElement.NO_SOURCE override fun hasSynthesizedParameterNames() = false