[K/N] keep coordinates for inline functions

^KT-65442
This commit is contained in:
Johan Bay
2024-01-09 15:55:51 +01:00
committed by Space Cloud
parent 446db595ce
commit d4abc30096
@@ -185,11 +185,7 @@ open class IrFileSerializer(
private fun serializeIrStatementOrigin(origin: IrStatementOrigin): Int =
serializeString(origin.debugName)
private fun serializeCoordinates(start: Int, end: Int): Long = if (skipPrivateApi) {
0L
} else {
BinaryCoordinates.encode(start, end)
}
private fun serializeCoordinates(start: Int, end: Int): Long = BinaryCoordinates.encode(start, end)
/* ------- Strings ---------------------------------------------------------- */
@@ -1005,7 +1001,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 = serializeCoordinates(declaration.startOffset, declaration.endOffset)
coordinates = if (skipPrivateApi && !isInsideInline) 0L else serializeCoordinates(declaration.startOffset, declaration.endOffset)
addAllAnnotation(serializeAnnotations(declaration.annotations))
flags?.let { setFlags(it) }
originName = serializeIrDeclarationOrigin(declaration.origin)
@@ -1201,7 +1197,7 @@ open class IrFileSerializer(
private fun serializeIrErrorDeclaration(errorDeclaration: IrErrorDeclaration): ProtoErrorDeclaration {
val proto = ProtoErrorDeclaration.newBuilder()
.setCoordinates(serializeCoordinates(errorDeclaration.startOffset, errorDeclaration.endOffset))
.setCoordinates(if (skipPrivateApi) 0L else serializeCoordinates(errorDeclaration.startOffset, errorDeclaration.endOffset))
return proto.build()
}
@@ -1330,7 +1326,6 @@ open class IrFileSerializer(
val topLevelDeclarations = mutableListOf<SerializedDeclaration>()
val proto = ProtoFile.newBuilder()
.setFileEntry(serializeFileEntry(file.fileEntry, includeLineStartOffsets = !skipPrivateApi))
.addAllFqName(serializeFqName(file.packageFqName.asString()))
.addAllAnnotation(serializeAnnotations(file.annotations))
@@ -1357,6 +1352,8 @@ open class IrFileSerializer(
proto.addDeclarationId(sigIndex)
}
proto.setFileEntry(serializeFileEntry(file.fileEntry, includeLineStartOffsets = !(skipPrivateApi && protoBodyArray.isEmpty())))
// TODO: is it Konan specific?
// Make sure that all top level properties are initialized on library's load.