[Commonizer] Drop CirFunction interface for plain data class

This commit is contained in:
sebastian.sellmair
2021-07-07 14:55:10 +02:00
committed by Space
parent 0c32abed02
commit e246a12cd3
3 changed files with 6 additions and 42 deletions

View File

@@ -9,44 +9,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibility
interface CirFunction : CirFunctionOrProperty, CirCallableMemberWithParameters {
val modifiers: CirFunctionModifiers
override fun withContainingClass(containingClass: CirContainingClass): CirFunction
companion object {
@Suppress("NOTHING_TO_INLINE")
inline fun create(
annotations: List<CirAnnotation>,
name: CirName,
typeParameters: List<CirTypeParameter>,
visibility: Visibility,
modality: Modality,
containingClass: CirContainingClass?,
valueParameters: List<CirValueParameter>,
hasStableParameterNames: Boolean,
extensionReceiver: CirExtensionReceiver?,
returnType: CirType,
kind: CallableMemberDescriptor.Kind,
modifiers: CirFunctionModifiers
): CirFunction = CirFunctionImpl(
annotations = annotations,
name = name,
typeParameters = typeParameters,
visibility = visibility,
modality = modality,
containingClass = containingClass,
valueParameters = valueParameters,
hasStableParameterNames = hasStableParameterNames,
extensionReceiver = extensionReceiver,
returnType = returnType,
kind = kind,
modifiers = modifiers
)
}
}
data class CirFunctionImpl(
data class CirFunction(
override val annotations: List<CirAnnotation>,
override val name: CirName,
override val typeParameters: List<CirTypeParameter>,
@@ -58,9 +21,10 @@ data class CirFunctionImpl(
override val extensionReceiver: CirExtensionReceiver?,
override val returnType: CirType,
override val kind: CallableMemberDescriptor.Kind,
override val modifiers: CirFunctionModifiers
) : CirFunction {
val modifiers: CirFunctionModifiers
) : CirFunctionOrProperty, CirCallableMemberWithParameters {
override fun withContainingClass(containingClass: CirContainingClass): CirFunction {
return copy(containingClass = containingClass)
}
}

View File

@@ -17,7 +17,7 @@ class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP
val valueParameters = valueParameters.result
valueParameters.patchCallables()
return CirFunction.create(
return CirFunction(
annotations = annotations.result,
name = name,
typeParameters = typeParameters.result,

View File

@@ -169,7 +169,7 @@ object CirDeserializers {
}
fun function(name: CirName, source: KmFunction, containingClass: CirContainingClass?, typeResolver: CirTypeResolver): CirFunction =
CirFunction.create(
CirFunction(
annotations = annotations(source.flags, typeResolver, source::annotations),
name = name,
typeParameters = source.typeParameters.compactMap { typeParameter(it, typeResolver) },