[ObjCExport] Fix 'MustBeDocumented' annotation missing on non value parameters
This commit is contained in:
committed by
Space Team
parent
885a7dcd8f
commit
1440e66519
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.konan.objcexport
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.descriptors.allParameters
|
||||
import org.jetbrains.kotlin.backend.common.serialization.findSourceFile
|
||||
import org.jetbrains.kotlin.backend.konan.*
|
||||
import org.jetbrains.kotlin.backend.konan.descriptors.enumEntries
|
||||
@@ -807,7 +808,7 @@ class ObjCExportTranslatorImpl(
|
||||
} else emptyList()
|
||||
|
||||
val visibilityComments = visibilityComments(method.visibility, "method")
|
||||
val paramComments = method.valueParameters.flatMap { parameterDescriptor ->
|
||||
val paramComments = method.allParameters.flatMap { parameterDescriptor ->
|
||||
parameters.find { parameter -> parameter.origin?.name == parameterDescriptor.name }?.let { parameter ->
|
||||
mustBeDocumentedParamAttributeList(parameter, descriptor = parameterDescriptor)
|
||||
} ?: emptyList()
|
||||
|
||||
+4
-2
@@ -374,8 +374,6 @@ class ObjCExportLazyImpl(
|
||||
private val lazy: ObjCExportLazyImpl,
|
||||
) : LazyObjCInterface(name = name.objCName, generics = emptyList(), categoryName = categoryName, attributes = emptyList()) {
|
||||
|
||||
override val origin: ObjCExportStubOrigin? = ObjCExportStubOrigin(classDescriptor)
|
||||
|
||||
override fun computeRealStub(): ObjCInterface = lazy.translator.translateExtensions(
|
||||
classDescriptor,
|
||||
declarations.mapNotNull { declaration ->
|
||||
@@ -403,6 +401,10 @@ private abstract class LazyObjCInterface(
|
||||
|
||||
private val realStub by lazy { computeRealStub() }
|
||||
|
||||
override val origin: ObjCExportStubOrigin? by lazy {
|
||||
realStub.origin
|
||||
}
|
||||
|
||||
override val members: List<ObjCExportStub>
|
||||
get() = realStub.members
|
||||
|
||||
|
||||
+5
-1
@@ -13,14 +13,18 @@ import org.jetbrains.kotlin.resolve.source.PsiSourceElement
|
||||
fun ObjCExportStubOrigin(descriptor: DeclarationDescriptor?): ObjCExportStubOrigin? {
|
||||
if (descriptor == null) return null
|
||||
|
||||
if (descriptor is DeserializedDescriptor) {
|
||||
return ObjCExportStubOrigin.Binary(descriptor.name, descriptor.extractSerializedKdocString())
|
||||
}
|
||||
|
||||
if (descriptor is DeclarationDescriptorWithSource) {
|
||||
return ObjCExportStubOrigin.Source(descriptor.name, descriptor.findKDocString(), (descriptor.source as? PsiSourceElement)?.psi)
|
||||
}
|
||||
|
||||
assert(descriptor is DeserializedDescriptor) { "Expected '$descriptor' to implement ${DeserializedDescriptor::class.simpleName}" }
|
||||
return ObjCExportStubOrigin.Binary(descriptor.name, descriptor.extractSerializedKdocString())
|
||||
}
|
||||
|
||||
|
||||
fun ObjCProtocolImpl(
|
||||
name: String,
|
||||
descriptor: ClassDescriptor,
|
||||
|
||||
Reference in New Issue
Block a user