diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIr.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIr.kt index 1a7b31ccc7d..27be99cbac5 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIr.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIr.kt @@ -490,7 +490,8 @@ data class FunctionStub( val receiver: ReceiverParameterStub?, val modality: MemberStubModality, val typeParameters: List = emptyList(), - val isOverride: Boolean = false + val isOverride: Boolean = false, + val hasStableParameterNames: Boolean = true ) : StubElementWithOrigin, FunctionalStub { override fun accept(visitor: StubIrVisitor, data: T) = diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrElementBuilders.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrElementBuilders.kt index 8d6e68d5d49..9bba73f3e3e 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrElementBuilders.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrElementBuilders.kt @@ -475,9 +475,11 @@ internal class FunctionStubBuilder( val platform = context.platform val parameters = mutableListOf() + var hasStableParameterNames = true func.parameters.forEachIndexed { index, parameter -> val parameterName = parameter.name.let { if (it == null || it.isEmpty()) { + hasStableParameterNames = false "arg$index" } else { it @@ -547,7 +549,8 @@ internal class FunctionStubBuilder( annotations, mustBeExternal, null, - MemberStubModality.FINAL + MemberStubModality.FINAL, + hasStableParameterNames = hasStableParameterNames ) return listOf(functionStub) } diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrMetadataEmitter.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrMetadataEmitter.kt index c720c004157..4123d810a04 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrMetadataEmitter.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/StubIrMetadataEmitter.kt @@ -257,7 +257,8 @@ private class MappingExtensions( get() = flagsOfNotNull( Flag.IS_PUBLIC, Flag.Function.IS_EXTERNAL.takeIf { this.external }, - Flag.HAS_ANNOTATIONS.takeIf { annotations.isNotEmpty() } + Flag.HAS_ANNOTATIONS.takeIf { annotations.isNotEmpty() }, + Flag.Function.HAS_NON_STABLE_PARAMETER_NAMES.takeIf { !this.hasStableParameterNames } ) or modality.flags val Classifier.fqNameSerialized: String