@@ -151,11 +151,11 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
|
||||
if (IncrementalCompilation.ENABLED) {
|
||||
if (recompilationDecision == IncrementalCacheImpl.RecompilationDecision.RECOMPILE_ALL) {
|
||||
allCompiledFiles.clear()
|
||||
return CHUNK_REBUILD_REQUIRED
|
||||
val targetsCompletelyMarkedDirty = FSOperations.getTargetsCompletelyMarkedDirty(context)
|
||||
FSOperations.markDirtyRecursively(context, chunk)
|
||||
}
|
||||
if (recompilationDecision == IncrementalCacheImpl.RecompilationDecision.COMPILE_OTHERS) {
|
||||
// TODO should mark dependencies as dirty, as well
|
||||
FSOperations.markDirty(context, chunk, { file ->
|
||||
FSOperations.markDirtyRecursively(context, chunk, { file ->
|
||||
KotlinSourceFileCollector.isKotlinSourceFile(file) && file !in allCompiledFiles
|
||||
})
|
||||
}
|
||||
|
||||
@@ -52,6 +52,24 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("constantValueChanged")
|
||||
public void testConstantValueChanged() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/constantValueChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inlineFunctionChanged")
|
||||
public void testInlineFunctionChanged() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/inlineFunctionChanged/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("inlineFunctionInlined")
|
||||
public void testInlineFunctionInlined() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/inlineFunctionInlined/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("simpleDependency")
|
||||
public void testSimpleDependency() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/simpleDependency/");
|
||||
@@ -70,6 +88,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("transitiveInlining")
|
||||
public void testTransitiveInlining() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/transitiveInlining/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("twoDependants")
|
||||
public void testTwoDependants() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/twoDependants/");
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/test/TestPackage$module1_const$*.class
|
||||
out/production/module1/test/TestPackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_const.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/usage/Usage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module2/src/module2_usage.kt
|
||||
End of files
|
||||
@@ -0,0 +1,2 @@
|
||||
module1->
|
||||
module2->module1
|
||||
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
public val CONST: String = "BF"
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package test
|
||||
|
||||
public val CONST: String = "Ae"
|
||||
@@ -0,0 +1,4 @@
|
||||
package usage
|
||||
|
||||
deprecated(test.CONST + test.CONST)
|
||||
class Usage
|
||||
@@ -0,0 +1,23 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/inline/InlinePackage$module1_inline$*.class
|
||||
out/production/module1/inline/InlinePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_inline.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module1/inline/InlinePackage$module1_inline$*.class
|
||||
out/production/module1/inline/InlinePackage$module1_other$*.class
|
||||
out/production/module1/inline/InlinePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_inline.kt
|
||||
module1/src/module1_other.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/usage/UsagePackage$module2_usage$*.class
|
||||
out/production/module2/usage/UsagePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module2/src/module2_usage.kt
|
||||
End of files
|
||||
@@ -0,0 +1,2 @@
|
||||
module1->
|
||||
module2->module1
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package inline
|
||||
|
||||
inline fun f(body: () -> Unit) {
|
||||
println("i'm inline function")
|
||||
body()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package inline
|
||||
|
||||
inline fun f(body: () -> Unit) {
|
||||
body()
|
||||
println("i'm inline function")
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package inline
|
||||
|
||||
fun other() {
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package usage
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
inline.f { println("to be inlined") }
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/inline/InlinePackage$module1_inline$*.class
|
||||
out/production/module1/inline/InlinePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_inline.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module1/inline/InlinePackage$module1_inline$*.class
|
||||
out/production/module1/inline/InlinePackage$module1_other$*.class
|
||||
out/production/module1/inline/InlinePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_inline.kt
|
||||
module1/src/module1_other.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/usage/UsagePackage$module2_usage$*.class
|
||||
out/production/module2/usage/UsagePackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module2/src/module2_usage.kt
|
||||
End of files
|
||||
@@ -0,0 +1,2 @@
|
||||
module1->
|
||||
module2->module1
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package inline
|
||||
|
||||
inline fun f(body: () -> Unit) {
|
||||
println("i'm inline function")
|
||||
body()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package inline
|
||||
|
||||
inline fun f(body: () -> Unit) {
|
||||
body()
|
||||
println("i'm inline function")
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package inline
|
||||
|
||||
fun other() {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package usage
|
||||
|
||||
inline fun inlineUsage(body: () -> Unit) {
|
||||
inline.f { println("to be inlined") }
|
||||
body()
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
Cleaning output files:
|
||||
out/production/module1/a/APackage$module1_a$*.class
|
||||
out/production/module1/a/APackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_a.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module1/a/APackage$module1_a$*.class
|
||||
out/production/module1/a/APackage$module1_other$*.class
|
||||
out/production/module1/a/APackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module1/src/module1_a.kt
|
||||
module1/src/module1_other.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module2/b/BPackage$module2_b$*.class
|
||||
out/production/module2/b/BPackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module2/src/module2_b.kt
|
||||
End of files
|
||||
Cleaning output files:
|
||||
out/production/module3/c/CPackage$module3_c$*.class
|
||||
out/production/module3/c/CPackage.class
|
||||
End of files
|
||||
Compiling files:
|
||||
module3/src/module3_c.kt
|
||||
End of files
|
||||
@@ -0,0 +1,3 @@
|
||||
module1->
|
||||
module2->module1
|
||||
module3->module2
|
||||
@@ -0,0 +1,6 @@
|
||||
package a
|
||||
|
||||
inline fun a(body: () -> Unit) {
|
||||
println("i'm inline function")
|
||||
body()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package a
|
||||
|
||||
inline fun a(body: () -> Unit) {
|
||||
println("i am inline function")
|
||||
body()
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package a
|
||||
|
||||
fun other() {
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package b
|
||||
|
||||
inline fun b(body: () -> Unit) {
|
||||
a.a { println("to be inlined into b") }
|
||||
body()
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package c
|
||||
|
||||
inline fun c(body: () -> Unit) {
|
||||
b.b { println("to be inlined into b") }
|
||||
body()
|
||||
}
|
||||
Reference in New Issue
Block a user