From ef83431618ba7564820fe7b2c91b5731df6bddd9 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 13 Jan 2020 13:12:26 +0300 Subject: [PATCH] Recompile all dirty files in case of error --- .../incremental/IncrementalCompilerRunner.kt | 8 ++---- .../gradle-build.log | 28 ------------------- .../gradle-build.log | 26 ----------------- .../gradle-build.log | 22 --------------- .../enumEntryAdded/gradle-build.log | 21 -------------- .../enumEntryRemoved/gradle-build.log | 21 -------------- .../enumMemberChanged/gradle-build.log | 18 ------------ .../sealedClassImplAdded/gradle-build.log | 17 ----------- .../gradle-build.log | 17 ----------- .../gradle-build.log | 17 ----------- .../varianceChanged/gradle-build.log | 22 --------------- .../constantRemoved/gradle-build.log | 18 ------------ .../gradle-build.log | 22 --------------- .../gradle-build.log | 24 ---------------- .../defaultValueRemoved1/gradle-build.log | 19 ------------- .../defaultValueRemoved2/gradle-build.log | 22 --------------- .../packageFacadeToClass/gradle-build.log | 21 -------------- 17 files changed, 3 insertions(+), 340 deletions(-) delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/companionObjectToSimpleObject/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/enumEntryAdded/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/enumEntryRemoved/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/sealedClassImplAdded/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/sealedClassIndirectImplAdded/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/sealedClassNestedImplAdded/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/classHierarchyAffected/varianceChanged/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/pureKotlin/constantRemoved/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultArgumentInConstructorRemoved/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultValueInConstructorRemoved/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved1/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved2/gradle-build.log delete mode 100644 jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/gradle-build.log diff --git a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt index 3b8ee2c5bd4..e726b5822b1 100644 --- a/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt +++ b/compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt @@ -208,7 +208,7 @@ abstract class IncrementalCompilerRunner< val currentBuildInfo = BuildInfo(startTS = System.currentTimeMillis()) val buildDirtyLookupSymbols = HashSet() val buildDirtyFqNames = HashSet() - val allSourcesToCompile = HashSet() + val allDirtySources = HashSet() var exitCode = ExitCode.OK @@ -222,10 +222,8 @@ abstract class IncrementalCompilerRunner< val expectActualTracker = ExpectActualTrackerImpl() val (sourcesToCompile, removedKotlinSources) = dirtySources.partition(File::exists) - // todo: more optimal to save only last iteration, but it will require adding standalone-ic specific logs - // (because jps rebuilds all files from last build if it failed and gradle rebuilds everything) - allSourcesToCompile.addAll(sourcesToCompile) - val text = dirtySources.joinToString(separator = System.getProperty("line.separator")) { it.canonicalPath } + allDirtySources.addAll(dirtySources) + val text = allDirtySources.joinToString(separator = System.getProperty("line.separator")) { it.canonicalPath } dirtySourcesSinceLastTimeFile.writeText(text) val services = makeServices( diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/gradle-build.log deleted file mode 100644 index 40f2551d7c5..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/gradle-build.log +++ /dev/null @@ -1,28 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/B.kt - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt - src/importedMember.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? - -================ Step #2 ================= - -Compiling files: - src/A.kt - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt - src/importedMember.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/gradle-build.log deleted file mode 100644 index 393d491baa1..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/gradle-build.log +++ /dev/null @@ -1,26 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt - src/importedMember.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String? - -================ Step #2 ================= - -Compiling files: - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt - src/importedMember.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectToSimpleObject/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectToSimpleObject/gradle-build.log deleted file mode 100644 index 4d4a24025d7..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectToSimpleObject/gradle-build.log +++ /dev/null @@ -1,22 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Unresolved reference: x - -================ Step #2 ================= - -Compiling files: - src/companionExtension.kt - src/companionReferenceExplicit.kt - src/companionReferenceImplicit.kt -End of files -Exit code: OK - diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryAdded/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryAdded/gradle-build.log deleted file mode 100644 index 864c40f0c6a..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryAdded/gradle-build.log +++ /dev/null @@ -1,21 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Enum.kt - src/getRandomEnumEntry.kt - src/use.kt - src/useEnumImplicitly.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -'when' expression must be exhaustive, add necessary 'C' branch or 'else' branch instead - -================ Step #2 ================= - -Compiling files: - src/getRandomEnumEntry.kt - src/use.kt - src/useEnumImplicitly.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryRemoved/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryRemoved/gradle-build.log deleted file mode 100644 index ff82ea0bc7a..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumEntryRemoved/gradle-build.log +++ /dev/null @@ -1,21 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Enum.kt - src/getRandomEnumEntry.kt - src/use.kt - src/useEnumImplicitly.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Unresolved reference: C - -================ Step #2 ================= - -Compiling files: - src/getRandomEnumEntry.kt - src/use.kt - src/useEnumImplicitly.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/gradle-build.log deleted file mode 100644 index d0a67a9283f..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/gradle-build.log +++ /dev/null @@ -1,18 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Enum.kt - src/useBecameNullable.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Any? - -================ Step #2 ================= - -Compiling files: - src/useBecameNullable.kt -End of files -Exit code: OK - diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassImplAdded/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassImplAdded/gradle-build.log deleted file mode 100644 index 5c2f2bce921..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassImplAdded/gradle-build.log +++ /dev/null @@ -1,17 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Base.kt - src/use.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -'when' expression must be exhaustive, add necessary 'is C' branch or 'else' branch instead - -================ Step #2 ================= - -Compiling files: - src/use.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassIndirectImplAdded/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassIndirectImplAdded/gradle-build.log deleted file mode 100644 index e30f1576339..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassIndirectImplAdded/gradle-build.log +++ /dev/null @@ -1,17 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Base.kt - src/use.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -'when' expression must be exhaustive, add necessary 'is Impl2' branch or 'else' branch instead - -================ Step #2 ================= - -Compiling files: - src/use.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassNestedImplAdded/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassNestedImplAdded/gradle-build.log deleted file mode 100644 index 5c2f2bce921..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/sealedClassNestedImplAdded/gradle-build.log +++ /dev/null @@ -1,17 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/Base.kt - src/use.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -'when' expression must be exhaustive, add necessary 'is C' branch or 'else' branch instead - -================ Step #2 ================= - -Compiling files: - src/use.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/varianceChanged/gradle-build.log b/jps-plugin/testData/incremental/classHierarchyAffected/varianceChanged/gradle-build.log deleted file mode 100644 index daaa79da853..00000000000 --- a/jps-plugin/testData/incremental/classHierarchyAffected/varianceChanged/gradle-build.log +++ /dev/null @@ -1,22 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/D.kt - src/useA.kt - src/useD.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Type mismatch: inferred type is A but A was expected -Type mismatch: inferred type is A but A was expected - -================ Step #2 ================= - -Compiling files: - src/D.kt - src/useA.kt - src/useD.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/constantRemoved/gradle-build.log b/jps-plugin/testData/incremental/pureKotlin/constantRemoved/gradle-build.log deleted file mode 100644 index 713d24c3ec6..00000000000 --- a/jps-plugin/testData/incremental/pureKotlin/constantRemoved/gradle-build.log +++ /dev/null @@ -1,18 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/const.kt - src/usage.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Unresolved reference: FOO - -================ Step #2 ================= - -Compiling files: - src/usage.kt -End of files -Exit code: OK - diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultArgumentInConstructorRemoved/gradle-build.log b/jps-plugin/testData/incremental/pureKotlin/defaultArgumentInConstructorRemoved/gradle-build.log deleted file mode 100644 index 49f1b6e766f..00000000000 --- a/jps-plugin/testData/incremental/pureKotlin/defaultArgumentInConstructorRemoved/gradle-build.log +++ /dev/null @@ -1,22 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/B.kt - src/createADefault.kt - src/createANonDefault.kt - src/useA.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Too many arguments for public constructor A() defined in foo.A - -================ Step #2 ================= - -Compiling files: - src/B.kt - src/createADefault.kt - src/useA.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultValueInConstructorRemoved/gradle-build.log b/jps-plugin/testData/incremental/pureKotlin/defaultValueInConstructorRemoved/gradle-build.log deleted file mode 100644 index 1c199609bf1..00000000000 --- a/jps-plugin/testData/incremental/pureKotlin/defaultValueInConstructorRemoved/gradle-build.log +++ /dev/null @@ -1,24 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/B.kt - src/createADefault.kt - src/createANonDefault.kt - src/useA.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -No value passed for parameter 'x' -No value passed for parameter 'x' - -================ Step #2 ================= - -Compiling files: - src/B.kt - src/createADefault.kt - src/createANonDefault.kt - src/useA.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved1/gradle-build.log b/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved1/gradle-build.log deleted file mode 100644 index 87bec11dbdd..00000000000 --- a/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved1/gradle-build.log +++ /dev/null @@ -1,19 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/fun.kt - src/useDefault.kt - src/useNonDefault.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -No value passed for parameter 'x' - -================ Step #2 ================= - -Compiling files: - src/useDefault.kt - src/useNonDefault.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved2/gradle-build.log b/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved2/gradle-build.log deleted file mode 100644 index 611b91240f6..00000000000 --- a/jps-plugin/testData/incremental/pureKotlin/defaultValueRemoved2/gradle-build.log +++ /dev/null @@ -1,22 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/fun.kt - src/useDefault1.kt - src/useDefault2.kt - src/useNonDefault.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -No value passed for parameter 'y' -No value passed for parameter 'y' - -================ Step #2 ================= - -Compiling files: - src/useDefault1.kt - src/useDefault2.kt - src/useNonDefault.kt -End of files -Exit code: OK \ No newline at end of file diff --git a/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/gradle-build.log b/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/gradle-build.log deleted file mode 100644 index 16aced53439..00000000000 --- a/jps-plugin/testData/incremental/withJava/other/packageFacadeToClass/gradle-build.log +++ /dev/null @@ -1,21 +0,0 @@ -================ Step #1 ================= - -Compiling files: - src/A.kt - src/useF.kt - src/useG.kt -End of files -Exit code: ABORT ------------------------------------------- -COMPILATION FAILED -Unresolved reference: f -Unresolved reference: g - -================ Step #2 ================= - -Compiling files: - src/useF.kt - src/useG.kt -End of files -Exit code: OK -