Fixed incremental compilation, when removing all callables from file.

Original commit: 4e702e34f0
This commit is contained in:
Evgeny Gerashchenko
2014-12-09 19:36:41 +03:00
parent 6e9dab923c
commit c2f4ed810c
7 changed files with 48 additions and 5 deletions
@@ -146,7 +146,7 @@ public class IncrementalCacheImpl(val baseDir: File): StorageOwner, IncrementalC
}
}
public override fun getRemovedPackageParts(sourceFilesToCompileAndFqNames: Map<File, String>): Collection<String> {
public override fun getRemovedPackageParts(sourceFilesToCompileAndFqNames: Map<File, String?>): Collection<String> {
return packagePartMap.getRemovedPackageParts(sourceFilesToCompileAndFqNames)
}
@@ -451,7 +451,7 @@ public class IncrementalCacheImpl(val baseDir: File): StorageOwner, IncrementalC
storage.remove(sourceFile.getAbsolutePath())
}
public fun getRemovedPackageParts(compiledSourceFilesToFqName: Map<File, String>): Collection<String> {
public fun getRemovedPackageParts(compiledSourceFilesToFqName: Map<File, String?>): Collection<String> {
val result = HashSet<String>()
storage.processKeysWithExistingMapping { key ->
@@ -463,9 +463,10 @@ public class IncrementalCacheImpl(val baseDir: File): StorageOwner, IncrementalC
}
else {
val previousPackageFqName = JvmClassName.byInternalName(packagePartClassName).getPackageFqName()
val currentPackageFqName = compiledSourceFilesToFqName[sourceFile]
if (currentPackageFqName != null && currentPackageFqName != previousPackageFqName.asString()) {
result.add(packagePartClassName)
if (sourceFile in compiledSourceFilesToFqName) {
if (compiledSourceFilesToFqName[sourceFile] != previousPackageFqName.asString()) {
result.add(packagePartClassName)
}
}
}
@@ -493,6 +493,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("onlyTopLevelFunctionInFileRemoved")
public void testOnlyTopLevelFunctionInFileRemoved() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/withJava/kotlinUsedInJava/onlyTopLevelFunctionInFileRemoved/");
doTest(fileName);
}
@TestMetadata("propertyRenamed")
public void testPropertyRenamed() throws Exception {
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/withJava/kotlinUsedInJava/propertyRenamed/");
@@ -0,0 +1,5 @@
class Usage {
void usage() {
test.TestPackage.a();
}
}
@@ -0,0 +1,4 @@
package test
fun a() {
}
@@ -0,0 +1,4 @@
package test
fun b() {
}
@@ -0,0 +1,21 @@
Cleaning output files:
out/production/module/test/TestPackage$b$*.class
out/production/module/test/TestPackage.class
End of files
Compiling files:
src/b.kt
End of files
Compiling files:
src/Usage.java
End of files
Cleaning output files:
out/production/module/Usage.class
out/production/module/test/TestPackage$a$*.class
out/production/module/test/TestPackage.class
End of files
Compiling files:
src/a.kt
End of files
Compiling files:
src/Usage.java
End of files