[FE] Add getContextReceivers to CallableDescriptor interface

This commit is contained in:
Anastasiya Shadrina
2020-07-15 17:57:19 +07:00
committed by TeamCityServer
parent 7de8380ddf
commit a39fbd3822
61 changed files with 194 additions and 63 deletions
@@ -88,6 +88,7 @@ private fun copyTypesFromExtensionAccessor(
null,
extensionAccessorDescriptor.extensionReceiverParameter?.copy(this),
emptyList(),
emptyList(),
extensionAccessorDescriptor.valueParameters.map { it.copy(this, it.name, it.index) },
extensionAccessorDescriptor.returnType,
accessorFunctionDescriptor.modality,
@@ -133,6 +133,8 @@ abstract class IrBasedCallableDescriptor<T : IrDeclaration>(owner: T) : Callable
override fun getDispatchReceiverParameter(): ReceiverParameterDescriptor? = null
override fun getContextReceiverParameters(): List<ReceiverParameterDescriptor> = emptyList()
override fun getTypeParameters(): List<TypeParameterDescriptor> {
TODO("not implemented")
}
@@ -859,6 +861,10 @@ open class IrBasedPropertyDescriptor(owner: IrProperty) :
override fun getExtensionReceiverParameter() =
owner.getter?.extensionReceiverParameter?.toIrBasedDescriptor() as? ReceiverParameterDescriptor
override fun getContextReceiverParameters(): List<ReceiverParameterDescriptor> {
TODO("Not yet implemented")
}
override fun isExternal() = owner.isExternal
override fun <R : Any?, D : Any?> accept(visitor: DeclarationDescriptorVisitor<R, D>?, data: D) =
@@ -1043,6 +1049,10 @@ open class IrBasedFieldDescriptor(owner: IrField) : PropertyDescriptor, IrBasedD
override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? =
owner.correspondingPropertySymbol?.owner?.toIrBasedDescriptor()?.extensionReceiverParameter
override fun getContextReceiverParameters(): List<ReceiverParameterDescriptor> {
TODO("Not yet implemented")
}
override fun isExternal() = owner.isExternal
override fun <R : Any?, D : Any?> accept(visitor: DeclarationDescriptorVisitor<R, D>?, data: D) =
@@ -155,7 +155,7 @@ class IrBuiltInsOverDescriptors(
returnKotlinType = typeParameterDescriptor.typeConstructor.makeNonNullType()
initialize(
null, null, listOf(typeParameterDescriptor), listOf(valueParameterDescriptor), returnKotlinType,
null, null, listOf(), listOf(typeParameterDescriptor), listOf(valueParameterDescriptor), returnKotlinType,
Modality.FINAL, DescriptorVisibilities.PUBLIC
)
}
@@ -35,6 +35,7 @@ abstract class IrBuiltinOperatorDescriptorBase(containingDeclaration: Declaratio
IrBuiltinOperatorDescriptor {
override fun getDispatchReceiverParameter(): ReceiverParameterDescriptor? = null
override fun getExtensionReceiverParameter(): ReceiverParameterDescriptor? = null
override fun getContextReceiverParameters(): List<ReceiverParameterDescriptor> = emptyList()
override fun getOriginal(): SimpleFunctionDescriptor = this
override fun substitute(substitutor: TypeSubstitutor): FunctionDescriptor = throw UnsupportedOperationException()
override fun getOverriddenDescriptors(): Collection<FunctionDescriptor> = emptyList()
@@ -67,7 +67,7 @@ abstract class IrDelegateDescriptorBase(
/* isDelegated = */ true
) {
init {
setType(delegateType, emptyList(), (containingDeclaration as? ClassDescriptor)?.thisAsReceiverParameter, null)
setType(delegateType, emptyList(), (containingDeclaration as? ClassDescriptor)?.thisAsReceiverParameter, null, emptyList())
}
final override fun setOutType(outType: KotlinType?) {