Add tests for incremental compilation of sealed interfaces

This commit is contained in:
Andrey Uskov
2020-12-09 17:33:51 +03:00
committed by Andrey Uskov
parent 36f99156fd
commit 2e607335db
60 changed files with 470 additions and 16 deletions
@@ -7,6 +7,7 @@ kotlin-data-container
Module 'module1' production
format-version.txt
jvm-build-meta-info.txt
class-attributes.tab
class-fq-name-to-source.tab
internal-name-to-source.tab
proto.tab
@@ -24,6 +25,7 @@ Module 'module2' tests
Module 'module3' production
format-version.txt
jvm-build-meta-info.txt
class-attributes.tab
class-fq-name-to-source.tab
internal-name-to-source.tab
proto.tab
@@ -32,6 +34,7 @@ Module 'module3' tests
Module 'module4' production
format-version.txt
jvm-build-meta-info.txt
class-attributes.tab
class-fq-name-to-source.tab
internal-name-to-source.tab
proto.tab
@@ -7,6 +7,7 @@ kotlin-data-container
Module 'module' production
format-version.txt
jvm-build-meta-info.txt
class-attributes.tab
class-fq-name-to-source.tab
internal-name-to-source.tab
proto.tab
@@ -7,6 +7,7 @@ kotlin-data-container
Module 'module' production
format-version.txt
jvm-build-meta-info.txt
class-attributes.tab
class-fq-name-to-source.tab
internal-name-to-source.tab
proto.tab
@@ -0,0 +1,3 @@
package test
interface A : Base
@@ -0,0 +1,3 @@
package test
interface B
@@ -0,0 +1,3 @@
package test
interface B : Base
@@ -0,0 +1,3 @@
package test
sealed interface Base
@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces
@@ -0,0 +1,28 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/B.class
End of files
Compiling files:
src/B.kt
End of files
Marked as dirty by Kotlin:
src/A.kt
src/B.kt
src/Base.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/A.class
out/production/module/test/B.class
out/production/module/test/Base.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/Base.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS
@@ -0,0 +1,3 @@
package test
interface С
@@ -0,0 +1,3 @@
package test
interface A : Base
@@ -0,0 +1,3 @@
package test
interface B : Base
@@ -0,0 +1,3 @@
package test
sealed interface Base
@@ -0,0 +1,3 @@
package test
interface C : Base
@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces
@@ -0,0 +1,27 @@
================ Step #1 =================
Compiling files:
src/C.kt
End of files
Marked as dirty by Kotlin:
src/A.kt
src/B.kt
src/Base.kt
src/C.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/A.class
out/production/module/test/B.class
out/production/module/test/Base.class
out/production/module/test/C.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/Base.kt
src/C.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS
@@ -0,0 +1,3 @@
package test
interface A : Base
@@ -0,0 +1,3 @@
package test
interface B : Base
@@ -0,0 +1,4 @@
package test
interface B
@@ -0,0 +1,3 @@
package test
sealed interface Base
@@ -0,0 +1,5 @@
package test
class C {
lateinit var base: Base
}
@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces
@@ -0,0 +1,39 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/B.class
End of files
Compiling files:
src/B.kt
End of files
Marked as dirty by Kotlin:
src/A.kt
src/B.kt
src/Base.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/A.class
out/production/module/test/B.class
out/production/module/test/Base.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/Base.kt
End of files
Marked as dirty by Kotlin:
src/BaseUsage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/C.class
End of files
Compiling files:
src/BaseUsage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS
@@ -0,0 +1,3 @@
package test
interface A : Base
@@ -0,0 +1,3 @@
package test
interface B : Base
@@ -0,0 +1,3 @@
package test
sealed interface Base
@@ -0,0 +1,5 @@
package test
class C {
lateinit var base: Base
}
@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces
@@ -0,0 +1,35 @@
================ Step #1 =================
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/B.class
End of files
Compiling files:
End of files
Marked as dirty by Kotlin:
src/A.kt
src/Base.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/A.class
out/production/module/test/Base.class
End of files
Compiling files:
src/A.kt
src/Base.kt
End of files
Marked as dirty by Kotlin:
src/BaseUsage.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/C.class
End of files
Compiling files:
src/BaseUsage.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS
@@ -0,0 +1,3 @@
package test
interface A : Base
@@ -0,0 +1,3 @@
package test
interface B : Base
@@ -0,0 +1,3 @@
package test
sealed interface Base
@@ -0,0 +1,3 @@
package test
interface C : Base
@@ -0,0 +1,5 @@
package test
class D {
lateinit var x: Base
}
@@ -0,0 +1,4 @@
package test
class E {
}
@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces
@@ -0,0 +1,38 @@
================ Step #1 =================
Compiling files:
src/C.kt
End of files
Marked as dirty by Kotlin:
src/A.kt
src/B.kt
src/Base.kt
src/C.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/A.class
out/production/module/test/B.class
out/production/module/test/Base.class
out/production/module/test/C.class
End of files
Compiling files:
src/A.kt
src/B.kt
src/Base.kt
src/C.kt
End of files
Marked as dirty by Kotlin:
src/D.kt
Exit code: ADDITIONAL_PASS_REQUIRED
------------------------------------------
Cleaning output files:
out/production/module/META-INF/module.kotlin_module
out/production/module/test/D.class
End of files
Compiling files:
src/D.kt
End of files
Exit code: OK
------------------------------------------
@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS