[Commonizer] Drop CirFunction interface for plain data class
This commit is contained in:
committed by
Space
parent
0c32abed02
commit
e246a12cd3
@@ -9,44 +9,7 @@ import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
|
|
||||||
interface CirFunction : CirFunctionOrProperty, CirCallableMemberWithParameters {
|
data class CirFunction(
|
||||||
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(
|
|
||||||
override val annotations: List<CirAnnotation>,
|
override val annotations: List<CirAnnotation>,
|
||||||
override val name: CirName,
|
override val name: CirName,
|
||||||
override val typeParameters: List<CirTypeParameter>,
|
override val typeParameters: List<CirTypeParameter>,
|
||||||
@@ -58,9 +21,10 @@ data class CirFunctionImpl(
|
|||||||
override val extensionReceiver: CirExtensionReceiver?,
|
override val extensionReceiver: CirExtensionReceiver?,
|
||||||
override val returnType: CirType,
|
override val returnType: CirType,
|
||||||
override val kind: CallableMemberDescriptor.Kind,
|
override val kind: CallableMemberDescriptor.Kind,
|
||||||
override val modifiers: CirFunctionModifiers
|
val modifiers: CirFunctionModifiers
|
||||||
) : CirFunction {
|
) : CirFunctionOrProperty, CirCallableMemberWithParameters {
|
||||||
override fun withContainingClass(containingClass: CirContainingClass): CirFunction {
|
override fun withContainingClass(containingClass: CirContainingClass): CirFunction {
|
||||||
return copy(containingClass = containingClass)
|
return copy(containingClass = containingClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP
|
|||||||
val valueParameters = valueParameters.result
|
val valueParameters = valueParameters.result
|
||||||
valueParameters.patchCallables()
|
valueParameters.patchCallables()
|
||||||
|
|
||||||
return CirFunction.create(
|
return CirFunction(
|
||||||
annotations = annotations.result,
|
annotations = annotations.result,
|
||||||
name = name,
|
name = name,
|
||||||
typeParameters = typeParameters.result,
|
typeParameters = typeParameters.result,
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ object CirDeserializers {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun function(name: CirName, source: KmFunction, containingClass: CirContainingClass?, typeResolver: CirTypeResolver): CirFunction =
|
fun function(name: CirName, source: KmFunction, containingClass: CirContainingClass?, typeResolver: CirTypeResolver): CirFunction =
|
||||||
CirFunction.create(
|
CirFunction(
|
||||||
annotations = annotations(source.flags, typeResolver, source::annotations),
|
annotations = annotations(source.flags, typeResolver, source::annotations),
|
||||||
name = name,
|
name = name,
|
||||||
typeParameters = source.typeParameters.compactMap { typeParameter(it, typeResolver) },
|
typeParameters = source.typeParameters.compactMap { typeParameter(it, typeResolver) },
|
||||||
|
|||||||
Reference in New Issue
Block a user