diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt index ec0ab36bba2..b46ffd3bfca 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLineNumberTest.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.codegen -import com.google.common.collect.Lists import com.intellij.openapi.util.text.StringUtil import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.test.KotlinTestUtils @@ -44,7 +43,7 @@ abstract class AbstractLineNumberTest : CodegenTestCase() { if (isCustomTest) { val actualLineNumbers = extractActualLineNumbersFromBytecode(classFileFactory, false) val text = psiFile.text - val newFileText = text.substring(0, text.indexOf("// ")) + getActualLineNumbersAsString(actualLineNumbers) + val newFileText = text.substringBefore("// ") + getActualLineNumbersAsString(actualLineNumbers) KotlinTestUtils.assertEqualsToFile(wholeFile, newFileText) } else { val expectedLineNumbers = extractSelectedLineNumbersFromSource(psiFile) @@ -54,7 +53,7 @@ abstract class AbstractLineNumberTest : CodegenTestCase() { } } catch (e: Throwable) { println(classFileFactory.createText()) - throw rethrow(e) + throw e } } @@ -62,37 +61,24 @@ abstract class AbstractLineNumberTest : CodegenTestCase() { private const val LINE_NUMBER_FUN = "lineNumber" private val TEST_LINE_NUMBER_PATTERN = Pattern.compile("^.*test.$LINE_NUMBER_FUN\\(\\).*$") - private fun createLineNumberDeclaration(): CodegenTestCase.TestFile { - return CodegenTestCase.TestFile( + private fun createLineNumberDeclaration() = + CodegenTestCase.TestFile( "$LINE_NUMBER_FUN.kt", "package test;\n\npublic fun $LINE_NUMBER_FUN(): Int = 0\n" ) - } - private fun getActualLineNumbersAsString(lines: List): String { - return lines.joinToString(" ", "// ", "", -1, "...") { lineNumber -> lineNumber } - } + private fun getActualLineNumbersAsString(lines: List) = + lines.joinToString(" ", "// ") - private fun extractActualLineNumbersFromBytecode(factory: ClassFileFactory, testFunInvoke: Boolean): List { - val actualLineNumbers = Lists.newArrayList() - for (outputFile in factory.getClassFiles()) { + private fun extractActualLineNumbersFromBytecode(factory: ClassFileFactory, testFunInvoke: Boolean) = + factory.getClassFiles().flatMap { outputFile -> val cr = ClassReader(outputFile.asByteArray()) - try { - val lineNumbers = if (testFunInvoke) readTestFunLineNumbers(cr) else readAllLineNumbers(cr) - actualLineNumbers.addAll(lineNumbers) - } catch (e: Throwable) { - println(factory.createText()) - throw rethrow(e) - } - + if (testFunInvoke) readTestFunLineNumbers(cr) else readAllLineNumbers(cr) } - return actualLineNumbers - } - private fun extractSelectedLineNumbersFromSource(file: KtFile): List { val fileContent = file.text - val lineNumbers = Lists.newArrayList() + val lineNumbers = arrayListOf() val lines = StringUtil.convertLineSeparators(fileContent).split("\n".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() for (i in lines.indices) { @@ -106,7 +92,7 @@ abstract class AbstractLineNumberTest : CodegenTestCase() { } private fun readTestFunLineNumbers(cr: ClassReader): List { - val labels = Lists.newArrayList