fix KT-9843 Bug in incremental compilation: module is not recompiled when optional parameter added

and KT-8434 Removing parameter with default value from function in different module breaks incremental compilation

#KT-9843 Fixed

#KT-8434 Fixed

Original commit: 981d471ebe
This commit is contained in:
Michael Nedzelsky
2015-11-05 20:48:33 +03:00
parent 7e4395a173
commit 02543e165b
21 changed files with 145 additions and 0 deletions
@@ -61,6 +61,30 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("defaultParameterAdded")
public void testDefaultParameterAdded() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterAdded/");
doTest(fileName);
}
@TestMetadata("defaultParameterAddedForTopLevelFun")
public void testDefaultParameterAddedForTopLevelFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterAddedForTopLevelFun/");
doTest(fileName);
}
@TestMetadata("defaultParameterRemoved")
public void testDefaultParameterRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterRemoved/");
doTest(fileName);
}
@TestMetadata("defaultParameterRemovedForTopLevelFun")
public void testDefaultParameterRemovedForTopLevelFun() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/defaultParameterRemovedForTopLevelFun/");
doTest(fileName);
}
@TestMetadata("inlineFunctionInlined")
public void testInlineFunctionInlined() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/multiModule/inlineFunctionInlined/");
@@ -0,0 +1,13 @@
Cleaning output files:
out/production/module1/a/A.class
End of files
Compiling files:
module1/src/module1_a.kt
End of files
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/usage/Module2_usageKt.class
End of files
Compiling files:
module2/src/module2_usage.kt
End of files
@@ -0,0 +1,2 @@
module1->
module2->module1
@@ -0,0 +1,6 @@
package a
class A {
fun foo(s: String, x: Int = 10) {
}
}
@@ -0,0 +1,5 @@
package a
class A {
fun foo(s: String, x: Int = 10, y:Int = 20) {}
}
@@ -0,0 +1,7 @@
package usage
import a.A
fun main(args: Array<String>) {
A().foo("")
}
@@ -0,0 +1,14 @@
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/a/Module1_aKt.class
End of files
Compiling files:
module1/src/module1_a.kt
End of files
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/usage/Module2_usageKt.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 a
fun foo(s: String, x: Int = 10) {}
@@ -0,0 +1,3 @@
package a
fun foo(s: String, x: Int = 10, y:Int = 20) {}
@@ -0,0 +1,5 @@
package usage
fun main(args: Array<String>) {
a.foo("")
}
@@ -0,0 +1,13 @@
Cleaning output files:
out/production/module1/a/A.class
End of files
Compiling files:
module1/src/module1_a.kt
End of files
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/usage/Module2_usageKt.class
End of files
Compiling files:
module2/src/module2_usage.kt
End of files
@@ -0,0 +1,2 @@
module1->
module2->module1
@@ -0,0 +1,6 @@
package a
class A {
fun foo(x:Int = 10) {
}
}
@@ -0,0 +1,7 @@
package a
class A {
fun foo() {
}
}
@@ -0,0 +1,6 @@
package usage
fun b(param: a.A) {
param.foo()
}
@@ -0,0 +1,14 @@
Cleaning output files:
out/production/module1/META-INF/module1.kotlin_module
out/production/module1/a/Module1_aKt.class
End of files
Compiling files:
module1/src/module1_a.kt
End of files
Cleaning output files:
out/production/module2/META-INF/module2.kotlin_module
out/production/module2/usage/Module2_usageKt.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 a
fun foo(x: Int = 10) {}
@@ -0,0 +1,5 @@
package usage
fun main(args: Array<String>) {
a.foo()
}