[StubIr] remove OVERRIDE from modalities
1. CEnum.value should be declared as open override in enums. 2. It is just incorrect.
This commit is contained in:
committed by
Sergey Bogolepov
parent
ab82a02be8
commit
3a4620cd33
+7
-9
@@ -109,6 +109,8 @@ private class ObjCMethodStubBuilder(
|
||||
private val name: String = method.kotlinName
|
||||
private val origin = StubOrigin.ObjCMethod(method, container)
|
||||
private val modality: MemberStubModality
|
||||
private val isOverride: Boolean =
|
||||
container is ObjCClassOrProtocol && method.isOverride(container)
|
||||
|
||||
init {
|
||||
val returnType = method.getReturnType(container.classOrProtocol)
|
||||
@@ -127,14 +129,8 @@ private class ObjCMethodStubBuilder(
|
||||
kotlinMethodParameters = method.getKotlinParameters(context, forConstructorOrFactory = false)
|
||||
external = (container !is ObjCProtocol)
|
||||
modality = when (container) {
|
||||
is ObjCClassOrProtocol -> {
|
||||
if (method.isOverride(container)) {
|
||||
MemberStubModality.OVERRIDE
|
||||
} else when (container) {
|
||||
is ObjCClass -> MemberStubModality.OPEN
|
||||
is ObjCProtocol -> MemberStubModality.ABSTRACT
|
||||
}
|
||||
}
|
||||
is ObjCClass -> MemberStubModality.OPEN
|
||||
is ObjCProtocol -> if (method.isOptional) MemberStubModality.OPEN else MemberStubModality.ABSTRACT
|
||||
is ObjCCategory -> MemberStubModality.FINAL
|
||||
}
|
||||
receiver = if (container is ObjCCategory) {
|
||||
@@ -226,7 +222,9 @@ private class ObjCMethodStubBuilder(
|
||||
annotations.toList(),
|
||||
external,
|
||||
receiver,
|
||||
modality),
|
||||
modality,
|
||||
emptyList(),
|
||||
isOverride),
|
||||
replacement
|
||||
)
|
||||
}
|
||||
|
||||
+4
-3
@@ -213,7 +213,8 @@ class PropertyStub(
|
||||
val modality: MemberStubModality = MemberStubModality.FINAL,
|
||||
val receiverType: StubType? = null,
|
||||
override val annotations: List<AnnotationStub> = emptyList(),
|
||||
val origin: StubOrigin
|
||||
val origin: StubOrigin,
|
||||
val isOverride: Boolean = false
|
||||
) : StubIrElement, AnnotationHolder {
|
||||
sealed class Kind {
|
||||
class Val(
|
||||
@@ -332,7 +333,6 @@ class FunctionParameterStub(
|
||||
) : AnnotationHolder
|
||||
|
||||
enum class MemberStubModality {
|
||||
OVERRIDE,
|
||||
OPEN,
|
||||
FINAL,
|
||||
ABSTRACT
|
||||
@@ -430,7 +430,8 @@ class FunctionStub(
|
||||
val external: Boolean = false,
|
||||
val receiver: ReceiverParameterStub?,
|
||||
val modality: MemberStubModality,
|
||||
val typeParameters: List<TypeParameterStub> = emptyList()
|
||||
val typeParameters: List<TypeParameterStub> = emptyList(),
|
||||
val isOverride: Boolean = false
|
||||
) : StubElementWithOrigin, FunctionalStub {
|
||||
|
||||
override fun <T, R> accept(visitor: StubIrVisitor<T, R>, data: T) =
|
||||
|
||||
+3
-2
@@ -214,8 +214,9 @@ internal class EnumStubBuilder(
|
||||
name = "value",
|
||||
type = baseType,
|
||||
kind = PropertyStub.Kind.Val(PropertyAccessor.Getter.GetConstructorParameter(constructorParameter)),
|
||||
modality = MemberStubModality.OVERRIDE,
|
||||
origin = StubOrigin.Synthetic)
|
||||
modality = MemberStubModality.OPEN,
|
||||
origin = StubOrigin.Synthetic,
|
||||
isOverride = true)
|
||||
|
||||
val canonicalsByValue = enumDef.constants
|
||||
.groupingBy { it.value }
|
||||
|
||||
+4
-3
@@ -185,8 +185,9 @@ class StubIrTextEmitter(
|
||||
val parameters = element.parameters.joinToString(prefix = "(", postfix = ")") { renderFunctionParameter(it) }
|
||||
val receiver = element.receiver?.let { renderFunctionReceiver(it) + "." } ?: ""
|
||||
val typeParameters = renderTypeParameters(element.typeParameters)
|
||||
val override = if (element.isOverride) "override " else ""
|
||||
val modality = renderMemberModality(element.modality, owner)
|
||||
"${modality}fun$typeParameters $receiver${element.name.asSimpleName()}$parameters: ${renderStubType(element.returnType)}"
|
||||
"$override${modality}fun$typeParameters $receiver${element.name.asSimpleName()}$parameters: ${renderStubType(element.returnType)}"
|
||||
}
|
||||
if (!nativeBridges.isSupported(element)) {
|
||||
sequenceOf(
|
||||
@@ -302,7 +303,8 @@ class StubIrTextEmitter(
|
||||
private fun emitProperty(element: PropertyStub, owner: StubContainer?) {
|
||||
if (element in bridgeBuilderResult.excludedStubs) return
|
||||
|
||||
val modality = renderMemberModality(element.modality, owner)
|
||||
val override = if (element.isOverride) "override " else ""
|
||||
val modality = "$override${renderMemberModality(element.modality, owner)}"
|
||||
val receiver = if (element.receiverType != null) "${renderStubType(element.receiverType)}." else ""
|
||||
val name = if (owner?.isTopLevelContainer == true) {
|
||||
getTopLevelPropertyDeclarationName(kotlinFile, element.name)
|
||||
@@ -374,7 +376,6 @@ class StubIrTextEmitter(
|
||||
""
|
||||
} else
|
||||
when (modality) {
|
||||
MemberStubModality.OVERRIDE -> "override "
|
||||
MemberStubModality.OPEN -> "open "
|
||||
MemberStubModality.FINAL -> "final "
|
||||
MemberStubModality.ABSTRACT -> "abstract "
|
||||
|
||||
Reference in New Issue
Block a user