Code cleanup: FunctionInvokeDescriptor

This commit is contained in:
Mikhail Glukhikh
2022-04-04 13:25:54 +03:00
committed by Space
parent 0ef32e5807
commit edeb4688dc
@@ -28,17 +28,17 @@ import org.jetbrains.kotlin.types.Variance
import org.jetbrains.kotlin.util.OperatorNameConventions
class FunctionInvokeDescriptor private constructor(
container: DeclarationDescriptor,
original: FunctionInvokeDescriptor?,
callableKind: CallableMemberDescriptor.Kind,
isSuspend: Boolean
container: DeclarationDescriptor,
original: FunctionInvokeDescriptor?,
callableKind: CallableMemberDescriptor.Kind,
isSuspend: Boolean
) : SimpleFunctionDescriptorImpl(
container,
original,
Annotations.EMPTY,
OperatorNameConventions.INVOKE,
callableKind,
SourceElement.NO_SOURCE
container,
original,
Annotations.EMPTY,
OperatorNameConventions.INVOKE,
callableKind,
SourceElement.NO_SOURCE
) {
init {
this.isOperator = true
@@ -66,12 +66,12 @@ class FunctionInvokeDescriptor private constructor(
}
override fun createSubstitutedCopy(
newOwner: DeclarationDescriptor,
original: FunctionDescriptor?,
kind: CallableMemberDescriptor.Kind,
newName: Name?,
annotations: Annotations,
source: SourceElement
newOwner: DeclarationDescriptor,
original: FunctionDescriptor?,
kind: CallableMemberDescriptor.Kind,
newName: Name?,
annotations: Annotations,
source: SourceElement
): FunctionDescriptorImpl {
return FunctionInvokeDescriptor(newOwner, original as FunctionInvokeDescriptor?, kind, isSuspend)
}
@@ -103,9 +103,9 @@ class FunctionInvokeDescriptor private constructor(
}
val copyConfiguration = newCopyBuilder(TypeSubstitutor.EMPTY)
.setHasSynthesizedParameterNames(parameterNames.any { it == null })
.setValueParameters(newValueParameters)
.setOriginal(original)
.setHasSynthesizedParameterNames(parameterNames.any { it == null })
.setValueParameters(newValueParameters)
.setOriginal(original)
return super.doSubstitute(copyConfiguration)!!
}
@@ -116,27 +116,26 @@ class FunctionInvokeDescriptor private constructor(
val result = FunctionInvokeDescriptor(functionClass, null, CallableMemberDescriptor.Kind.DECLARATION, isSuspend)
result.initialize(
null,
functionClass.thisAsReceiverParameter,
listOf(), listOf(),
typeParameters.takeWhile { it.variance == Variance.IN_VARIANCE }
.withIndex()
.map { createValueParameter(result, it.index, it.value) },
typeParameters.last().defaultType,
Modality.ABSTRACT,
DescriptorVisibilities.PUBLIC
null,
functionClass.thisAsReceiverParameter,
listOf(), listOf(),
typeParameters.takeWhile { it.variance == Variance.IN_VARIANCE }
.withIndex()
.map { createValueParameter(result, it.index, it.value) },
typeParameters.last().defaultType,
Modality.ABSTRACT,
DescriptorVisibilities.PUBLIC
)
result.setHasSynthesizedParameterNames(true)
return result
}
private fun createValueParameter(
containingDeclaration: FunctionInvokeDescriptor,
index: Int,
typeParameter: TypeParameterDescriptor
containingDeclaration: FunctionInvokeDescriptor,
index: Int,
typeParameter: TypeParameterDescriptor
): ValueParameterDescriptor {
val typeParameterName = typeParameter.name.asString()
val name = when (typeParameterName) {
val name = when (val typeParameterName = typeParameter.name.asString()) {
"T" -> "instance"
"E" -> "receiver"
else -> {
@@ -146,15 +145,15 @@ class FunctionInvokeDescriptor private constructor(
}
return ValueParameterDescriptorImpl(
containingDeclaration, null, index,
Annotations.EMPTY,
Name.identifier(name),
typeParameter.defaultType,
/* declaresDefaultValue = */ false,
/* isCrossinline = */ false,
/* isNoinline = */ false,
/* varargElementType = */ null,
SourceElement.NO_SOURCE
containingDeclaration, null, index,
Annotations.EMPTY,
Name.identifier(name),
typeParameter.defaultType,
declaresDefaultValue = false,
isCrossinline = false,
isNoinline = false,
varargElementType = null,
SourceElement.NO_SOURCE
)
}
}