Inline properties support in incremental compilation

Original commit: a090133581
This commit is contained in:
Mikhael Bogdanov
2016-06-23 16:40:00 +03:00
parent 7e1baf1a69
commit babb4ddf87
38 changed files with 425 additions and 0 deletions
@@ -443,6 +443,18 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("inlineClassValProperty")
public void testInlineClassValProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineClassValProperty/");
doTest(fileName);
}
@TestMetadata("inlineClassVarProperty")
public void testInlineClassVarProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineClassVarProperty/");
doTest(fileName);
}
@TestMetadata("inlineFunctionRemoved")
public void testInlineFunctionRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineFunctionRemoved/");
@@ -479,6 +491,30 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("inlineTopLevelFunctionWithJvmName")
public void testInlineTopLevelFunctionWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelFunctionWithJvmName/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelValProperty")
public void testInlineTopLevelValProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelValProperty/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelValPropertyWithJvmName")
public void testInlineTopLevelValPropertyWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelValPropertyWithJvmName/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelVarProperty")
public void testInlineTopLevelVarProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelVarProperty/");
doTest(fileName);
}
@TestMetadata("inlineTwoFunctionsOneChanged")
public void testInlineTwoFunctionsOneChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTwoFunctionsOneChanged/");
@@ -845,6 +881,12 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("topLevelFunctionWithJvmName")
public void testTopLevelFunctionWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelFunctionWithJvmName/");
doTest(fileName);
}
@TestMetadata("topLevelMembersInTwoFiles")
public void testTopLevelMembersInTwoFiles() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelMembersInTwoFiles/");
@@ -857,6 +899,12 @@ public class ExperimentalIncrementalJpsTestGenerated extends AbstractExperimenta
doTest(fileName);
}
@TestMetadata("topLevelPropertyWithJvmName")
public void testTopLevelPropertyWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelPropertyWithJvmName/");
doTest(fileName);
}
@TestMetadata("traitClassObjectConstantChanged")
public void testTraitClassObjectConstantChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/");
@@ -443,6 +443,18 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("inlineClassValProperty")
public void testInlineClassValProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineClassValProperty/");
doTest(fileName);
}
@TestMetadata("inlineClassVarProperty")
public void testInlineClassVarProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineClassVarProperty/");
doTest(fileName);
}
@TestMetadata("inlineFunctionRemoved")
public void testInlineFunctionRemoved() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineFunctionRemoved/");
@@ -479,6 +491,30 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("inlineTopLevelFunctionWithJvmName")
public void testInlineTopLevelFunctionWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelFunctionWithJvmName/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelValProperty")
public void testInlineTopLevelValProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelValProperty/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelValPropertyWithJvmName")
public void testInlineTopLevelValPropertyWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelValPropertyWithJvmName/");
doTest(fileName);
}
@TestMetadata("inlineTopLevelVarProperty")
public void testInlineTopLevelVarProperty() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTopLevelVarProperty/");
doTest(fileName);
}
@TestMetadata("inlineTwoFunctionsOneChanged")
public void testInlineTwoFunctionsOneChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/inlineTwoFunctionsOneChanged/");
@@ -845,6 +881,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("topLevelFunctionWithJvmName")
public void testTopLevelFunctionWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelFunctionWithJvmName/");
doTest(fileName);
}
@TestMetadata("topLevelMembersInTwoFiles")
public void testTopLevelMembersInTwoFiles() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelMembersInTwoFiles/");
@@ -857,6 +899,12 @@ public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest {
doTest(fileName);
}
@TestMetadata("topLevelPropertyWithJvmName")
public void testTopLevelPropertyWithJvmName() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/topLevelPropertyWithJvmName/");
doTest(fileName);
}
@TestMetadata("traitClassObjectConstantChanged")
public void testTraitClassObjectConstantChanged() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("jps-plugin/testData/incremental/pureKotlin/traitClassObjectConstantChanged/");
@@ -0,0 +1,5 @@
package usage
class Usage {
val x = inline.A().f
}
@@ -0,0 +1,20 @@
================ Step #1 =================
Cleaning output files:
out/production/module/inline/A.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/Usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/usage/Usage.class
End of files
Compiling files:
src/Usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,6 @@
package inline
class A {
inline val f: Int
get() = 0
}
@@ -0,0 +1,6 @@
package inline
class A {
inline val f: Int
get() = 1
}
@@ -0,0 +1,21 @@
================ Step #1 =================
Cleaning output files:
out/production/module/inline/A.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,9 @@
package inline
class A {
inline var f: Int
get() = 0
set(p: Int) {
0
}
}
@@ -0,0 +1,9 @@
package inline
class A {
inline var f: Int
get() = 0
set(p: Int) {
1
}
}
@@ -0,0 +1,5 @@
package usage
fun a() {
inline.A().f = 1
}
@@ -0,0 +1,5 @@
package usage2
fun b() {
inline.A().f
}
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/InlineKt.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package inline
@JvmName("test") inline fun g() = 0
@@ -0,0 +1,3 @@
package inline
@JvmName("test") inline fun g() = 1
@@ -0,0 +1,3 @@
package usage
val x = inline.g()
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/InlineKt.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,4 @@
package inline
inline val f: Int
get() = 0
@@ -0,0 +1,4 @@
package inline
inline val f: Int
get() = 1
@@ -0,0 +1,3 @@
package usage
val x = inline.f
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/InlineKt.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,4 @@
package inline
inline val f: Int
@JvmName("getG") get() = 0
@@ -0,0 +1,4 @@
package inline
inline val f: Int
@JvmName("getG") get() = 1
@@ -0,0 +1,3 @@
package usage
val x = inline.f
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/InlineKt.class
End of files
Compiling files:
src/inline.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,5 @@
package inline
inline var f: Int
get() = 0
set(p: Int) {0}
@@ -0,0 +1,5 @@
package inline
inline var f: Int
get() = 0
set(p: Int) { 1 }
@@ -0,0 +1,5 @@
package usage
fun a() {
inline.f = 1
}
@@ -0,0 +1,5 @@
package usage2
fun b() {
inline.f
}
@@ -0,0 +1,20 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/FunctionKt.class
End of files
Compiling files:
src/function.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/inline/FunctionKt.class
End of files
Compiling files:
src/function.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,3 @@
package inline
@JvmName("oldName") fun g() = 0
@@ -0,0 +1,3 @@
package inline
@JvmName("newName") fun g() = 1
@@ -0,0 +1,3 @@
package usage
val x = inline.g()
@@ -0,0 +1,20 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/PropertyKt.class
End of files
Compiling files:
src/property.kt
End of files
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,22 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/PropertyKt.class
End of files
Compiling files:
src/property.kt
End of files
Marked as dirty by Kotlin:
src/usage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/usage/UsageKt.class
End of files
Compiling files:
src/usage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1,4 @@
package test
val g: Int
@JvmName("oldName") get() = 0
@@ -0,0 +1,4 @@
package test
val g: Int
@JvmName("newName") get() = 0
@@ -0,0 +1,3 @@
package usage
val x = test.g