From 1a02eb4c6cdea1efd9e493cc21476cb6457031bf Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 19 Sep 2014 19:27:22 +0400 Subject: [PATCH] Include package part name to top level closure names #KT-4234 Fixed #KT-4496 Fixed Original commit: c30aa7db84c9936fde44e5e847bb1d326ef10fd6 --- .../jet/jps/build/AbstractIncrementalJpsTest.kt | 15 +++++++++------ .../incremental/pureKotlin/subpackage/build.log | 4 ++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt index 4e6509593b8..ca1063ee4cc 100644 --- a/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt @@ -33,6 +33,7 @@ import kotlin.test.fail import java.util.HashMap import org.jetbrains.jet.utils.keysToMap import org.jetbrains.jps.incremental.messages.BuildMessage +import java.util.regex.Pattern public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() { private var testDataDir: File by Delegates.notNull() @@ -239,19 +240,21 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() { override fun isEnabled(): Boolean = true override fun logLine(message: String?) { - fun String.replaceHashWithStar(): String { - if (this contains "Package$") { - val lastDollar = this.lastIndexOf('$') - if (lastDollar != -1 && substring(lastDollar + 1).matches("[0-9a-f]{1,8}\\.class")) { - return substring(0, lastDollar) + "$*.class" - } + val matcher = STRIP_PACKAGE_PART_HASH_PATTERN.matcher(this) + if (matcher.find()) { + return matcher.replaceAll("\\$*") } return this } logBuf.append(message!!.trimLeading(rootPath + "/").replaceHashWithStar()).append('\n') } + + class object { + // We suspect sequences of several consecutive hexadecimal digits to be a package part hash code + val STRIP_PACKAGE_PART_HASH_PATTERN = Pattern.compile("\\$([0-9a-f]{5,8})") + } } private abstract class Modification(val path: String) { diff --git a/jps/jps-plugin/testData/incremental/pureKotlin/subpackage/build.log b/jps/jps-plugin/testData/incremental/pureKotlin/subpackage/build.log index ca0056732d4..d6788707583 100644 --- a/jps/jps-plugin/testData/incremental/pureKotlin/subpackage/build.log +++ b/jps/jps-plugin/testData/incremental/pureKotlin/subpackage/build.log @@ -1,6 +1,6 @@ Cleaning output files: -out/production/module/outer/nested/NestedPackage$main$1.class -out/production/module/outer/nested/NestedPackage-nested-*.class +out/production/module/outer/nested/NestedPackage$nested$*$main$1.class +out/production/module/outer/nested/NestedPackage$nested$*.class out/production/module/outer/nested/NestedPackage.class End of files Compiling files: