From c753a98d02f1674b4232b7832aa0b0f28a4f9b80 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Thu, 13 Sep 2018 13:41:45 +0200 Subject: [PATCH] Use section constants to generate smap data --- .../org/jetbrains/kotlin/codegen/inline/SMAP.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt index c127f874554..d860d88b412 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/SMAP.kt @@ -19,6 +19,10 @@ package org.jetbrains.kotlin.codegen.inline import gnu.trove.TIntIntHashMap import org.jetbrains.kotlin.codegen.ClassBuilder import org.jetbrains.kotlin.codegen.SourceInfo +import org.jetbrains.kotlin.codegen.inline.SMAP.Companion.END +import org.jetbrains.kotlin.codegen.inline.SMAP.Companion.FILE_SECTION +import org.jetbrains.kotlin.codegen.inline.SMAP.Companion.LINE_SECTION +import org.jetbrains.kotlin.codegen.inline.SMAP.Companion.STRATA_SECTION import java.util.* const val KOTLIN_STRATA_NAME = "Kotlin" @@ -49,9 +53,9 @@ class SMAPBuilder( } private fun generateDefaultStrata(realMappings: List): String { - val fileIds = "*F" + realMappings.mapIndexed { id, file -> "\n${file.toSMAPFile(id + 1)}" }.joinToString("") - val lineMappings = "*L" + realMappings.joinToString("") { it.toSMAPMapping() } - return "*S $KOTLIN_STRATA_NAME\n$fileIds\n$lineMappings\n*E\n" + val fileIds = FILE_SECTION + realMappings.mapIndexed { id, file -> "\n${file.toSMAPFile(id + 1)}" }.joinToString("") + val lineMappings = LINE_SECTION + realMappings.joinToString("") { it.toSMAPMapping() } + return "$STRATA_SECTION $KOTLIN_STRATA_NAME\n$fileIds\n$lineMappings\n$END\n" } private fun generateDebugStrata(realMappings: List): String { @@ -69,9 +73,9 @@ class SMAPBuilder( if (combinedMapping.lineMappings.isEmpty()) return "" val newMappings = listOf(combinedMapping) - val fileIds = "*F" + newMappings.mapIndexed { id, file -> "\n${file.toSMAPFile(id + 1)}" }.joinToString("") - val lineMappings = "*L" + newMappings.joinToString("") { it.toSMAPMapping() } - return "*S $KOTLIN_DEBUG_STRATA_NAME\n$fileIds\n$lineMappings\n*E\n" + val fileIds = FILE_SECTION + newMappings.mapIndexed { id, file -> "\n${file.toSMAPFile(id + 1)}" }.joinToString("") + val lineMappings = LINE_SECTION + newMappings.joinToString("") { it.toSMAPMapping() } + return "$STRATA_SECTION $KOTLIN_DEBUG_STRATA_NAME\n$fileIds\n$lineMappings\n$END\n" } private fun RangeMapping.toSMAP(fileId: Int): String { @@ -271,6 +275,7 @@ class SMAP(val fileMappings: List) { companion object { const val FILE_SECTION = "*F" const val LINE_SECTION = "*L" + const val STRATA_SECTION = "*S" const val END = "*E" } }