Ignore intervals that has no mapping for origin line (KT-12896)

This commit is contained in:
Nikolay Krasko
2016-08-01 17:48:00 +03:00
parent 2dd7470cdc
commit a9ee10a8b7
5 changed files with 113 additions and 1 deletions
@@ -82,7 +82,15 @@ private fun inlinedLinesNumbers(
val smap = smapData.kotlinStrata ?: return listOf()
val mappingsToInlinedFile = smap.fileMappings.filter() { it.name == inlineFileName }
return mappingsToInlinedFile.flatMap { it.lineMappings.map { it.mapSourceToDest(inlineLineNumber) } }
val mappingIntervals = mappingsToInlinedFile.flatMap { it.lineMappings }
val mappedLines = mappingIntervals.asSequence().
filter { rangeMapping -> rangeMapping.hasMappingForSource(inlineLineNumber) }.
map { rangeMapping -> rangeMapping.mapSourceToDest(inlineLineNumber) }.
filter { line -> line != -1 }.
toList()
return mappedLines
}
@Volatile var emulateDexDebugInTests: Boolean = false