diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt index 1e0b1d34a26..ed17fbcef2a 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileSerializer.kt @@ -113,7 +113,7 @@ open class IrFileSerializer( private val languageVersionSettings: LanguageVersionSettings, private val bodiesOnlyForInlines: Boolean = false, private val normalizeAbsolutePaths: Boolean = false, - private val skipPrivateApi: Boolean = false, + private val publicAbiOnly: Boolean = false, private val sourceBaseDirs: Collection ) { private val loopIndex = hashMapOf() @@ -1003,7 +1003,7 @@ open class IrFileSerializer( private fun serializeIrDeclarationBase(declaration: IrDeclaration, flags: Long?): ProtoDeclarationBase { return with(ProtoDeclarationBase.newBuilder()) { symbol = serializeIrSymbol((declaration as IrSymbolOwner).symbol, isDeclared = true) - coordinates = if (skipPrivateApi && !isInsideInline) 0L else serializeCoordinates(declaration.startOffset, declaration.endOffset) + coordinates = if (publicAbiOnly && !isInsideInline) 0L else serializeCoordinates(declaration.startOffset, declaration.endOffset) addAllAnnotation(serializeAnnotations(declaration.annotations)) flags?.let { setFlags(it) } originName = serializeIrDeclarationOrigin(declaration.origin) @@ -1041,7 +1041,7 @@ open class IrFileSerializer( private fun serializeIrFunctionBase(function: IrFunction, flags: Long): ProtoFunctionBase { val isInsideInlineBefore = isInsideInline - isInsideInline = isInsideInline || function.isInline + isInsideInline = function.isInline || isInsideInlineBefore val proto = ProtoFunctionBase.newBuilder() .setBase(serializeIrDeclarationBase(function, flags)) @@ -1061,7 +1061,7 @@ open class IrFileSerializer( proto.addValueParameter(serializeIrValueParameter(it)) } - if (!bodiesOnlyForInlines || isInsideInline) { + if (!bodiesOnlyForInlines || function.isInline || (publicAbiOnly && isInsideInline)) { function.body?.let { proto.body = serializeIrStatementBody(it) } } isInsideInline = isInsideInlineBefore @@ -1204,7 +1204,7 @@ open class IrFileSerializer( private fun serializeIrErrorDeclaration(errorDeclaration: IrErrorDeclaration): ProtoErrorDeclaration { val proto = ProtoErrorDeclaration.newBuilder() - .setCoordinates(if (skipPrivateApi) 0L else serializeCoordinates(errorDeclaration.startOffset, errorDeclaration.endOffset)) + .setCoordinates(if (publicAbiOnly) 0L else serializeCoordinates(errorDeclaration.startOffset, errorDeclaration.endOffset)) return proto.build() } @@ -1273,7 +1273,7 @@ open class IrFileSerializer( open fun backendSpecificMetadata(irFile: IrFile): FileBackendSpecificMetadata? = null private fun skipIfPrivate(declaration: IrDeclaration) = - skipPrivateApi && (declaration as? IrDeclarationWithVisibility)?.let { !it.visibility.isPublicAPI && it.visibility != INTERNAL } == true + publicAbiOnly && (declaration as? IrDeclarationWithVisibility)?.let { !it.visibility.isPublicAPI && it.visibility != INTERNAL } == true // Always keep private interfaces and type aliases as they can be part of public type hierarchies. && (declaration as? IrClass)?.isInterface != true && declaration !is IrTypeAlias @@ -1359,7 +1359,7 @@ open class IrFileSerializer( proto.addDeclarationId(sigIndex) } - proto.setFileEntry(serializeFileEntry(file.fileEntry, includeLineStartOffsets = !(skipPrivateApi && protoBodyArray.isEmpty()))) + proto.setFileEntry(serializeFileEntry(file.fileEntry, includeLineStartOffsets = !(publicAbiOnly && protoBodyArray.isEmpty()))) // TODO: is it Konan specific? diff --git a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt index 6be29dd1f25..0acf35cfaa1 100644 --- a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt +++ b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrFileSerializer.kt @@ -22,12 +22,12 @@ class KonanIrFileSerializer( compatibilityMode: CompatibilityMode, normalizeAbsolutePaths: Boolean, sourceBaseDirs: Collection, - skipPrivateApi: Boolean = false, + publicAbiOnly: Boolean = false, ) : IrFileSerializer( declarationTable, compatibilityMode, languageVersionSettings, - skipPrivateApi = skipPrivateApi, + publicAbiOnly = publicAbiOnly, bodiesOnlyForInlines = bodiesOnlyForInlines, normalizeAbsolutePaths = normalizeAbsolutePaths, sourceBaseDirs = sourceBaseDirs diff --git a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt index ab393a2ab5d..79b15299a7e 100644 --- a/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt +++ b/compiler/ir/serialization.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrModuleSerializer.kt @@ -21,7 +21,7 @@ class KonanIrModuleSerializer( sourceBaseDirs: Collection, private val languageVersionSettings: LanguageVersionSettings, private val bodiesOnlyForInlines: Boolean = false, - private val skipPrivateApi: Boolean = false, + private val publicAbiOnly: Boolean = false, shouldCheckSignaturesOnUniqueness: Boolean = true, ) : IrModuleSerializer( diagnosticReporter, @@ -50,6 +50,6 @@ class KonanIrModuleSerializer( compatibilityMode = compatibilityMode, normalizeAbsolutePaths = normalizeAbsolutePaths, sourceBaseDirs = sourceBaseDirs, - skipPrivateApi = skipPrivateApi + publicAbiOnly = publicAbiOnly ) } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt index dac634c61f5..185b1657d86 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/FirNativeSerializer.kt @@ -71,7 +71,7 @@ internal fun PhaseContext.firSerializerBase( sourceBaseDirs = sourceBaseDirs, languageVersionSettings = languageVersionSettings, bodiesOnlyForInlines = produceHeaderKlib, - skipPrivateApi = produceHeaderKlib, + publicAbiOnly = produceHeaderKlib, shouldCheckSignaturesOnUniqueness = shouldCheckSignaturesOnUniqueness, ) }, diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Serializer.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Serializer.kt index cc5ff8cabf2..a3a1798fd82 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Serializer.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Serializer.kt @@ -48,7 +48,7 @@ internal val SerializerPhase = createSimpleNamedCompilerPhase