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

View File

@@ -46,7 +46,7 @@ class BuildDiffsStorageTest {
val diff = BuildDifference(100, true, DirtyData(lookupSymbols, fqNames))
val diffs = BuildDiffsStorage(listOf(diff))
Assert.assertEquals(
"BuildDiffsStorage(buildDiffs=[BuildDifference(ts=100, isIncremental=true, dirtyData=DirtyData(dirtyLookupSymbols=[LookupSymbol(name=foo, scope=bar)], dirtyClassesFqNames=[fizz.Buzz]))])",
"BuildDiffsStorage(buildDiffs=[BuildDifference(ts=100, isIncremental=true, dirtyData=DirtyData(dirtyLookupSymbols=[LookupSymbol(name=foo, scope=bar)], dirtyClassesFqNames=[fizz.Buzz], dirtyClassesFqNamesForceRecompile=[]))])",
diffs.toString()
)
}

View File

@@ -570,6 +570,31 @@ public class IncrementalJsCompilerRunnerTestGenerated extends AbstractIncrementa
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -570,6 +570,31 @@ public class IncrementalJsCompilerRunnerWithMetadataOnlyTestGenerated extends Ab
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -572,6 +572,31 @@ public class IncrementalJsKlibCompilerRunnerTestGenerated extends AbstractIncrem
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.incremental;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.MuteExtraSuffix;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
@@ -19,6 +20,7 @@ import java.util.regex.Pattern;
@RunWith(JUnit3RunnerWithInners.class)
public class IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated extends AbstractIncrementalJsKlibCompilerWithScopeExpansionRunnerTest {
@TestMetadata("jps-plugin/testData/incremental/pureKotlin")
@MuteExtraSuffix(".jsklib")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class PureKotlin extends AbstractIncrementalJsKlibCompilerWithScopeExpansionRunnerTest {
@@ -570,6 +572,31 @@ public class IncrementalJsKlibCompilerWithScopeExpansionRunnerTestGenerated exte
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -571,6 +571,31 @@ public class IncrementalJvmCompilerRunnerTestGenerated extends AbstractIncrement
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -571,6 +571,31 @@ public class IrIncrementalJvmCompilerRunnerTestGenerated extends AbstractIrIncre
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -1239,6 +1239,31 @@ public class IncrementalJvmJpsTestGenerated extends AbstractIncrementalJvmJpsTes
runTest("jps-plugin/testData/incremental/pureKotlin/returnTypeChanged/");
}
@TestMetadata("sealedClassesAddImplements")
public void testSealedClassesAddImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddImplements/");
}
@TestMetadata("sealedClassesAddInheritor")
public void testSealedClassesAddInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesAddInheritor/");
}
@TestMetadata("sealedClassesRemoveImplements")
public void testSealedClassesRemoveImplements() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveImplements/");
}
@TestMetadata("sealedClassesRemoveInheritor")
public void testSealedClassesRemoveInheritor() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesRemoveInheritor/");
}
@TestMetadata("sealedClassesUseSwitch")
public void testSealedClassesUseSwitch() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/sealedClassesUseSwitch/");
}
@TestMetadata("secondaryConstructorInlined")
public void testSecondaryConstructorInlined() throws Exception {
runTest("jps-plugin/testData/incremental/pureKotlin/secondaryConstructorInlined/");

View File

@@ -3,9 +3,11 @@ CHANGES in test/AbstractFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AbstractFlagRemoved: FLAGS
CHANGES in test/AbstractFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagAdded: FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE, PARENTS
[kotlin.Annotation, kotlin.Any]
PROTO DIFFERENCE in test/AnnotationFlagRemoved: FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE, PARENTS
[kotlin.Annotation, kotlin.Any]
PROTO DIFFERENCE in test/DataFlagAdded: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagAdded: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
@@ -13,9 +15,11 @@ PROTO DIFFERENCE in test/DataFlagRemoved: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagRemoved: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/EnumFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE, PARENTS
[kotlin.Any, kotlin.Enum]
PROTO DIFFERENCE in test/EnumFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE, PARENTS
[kotlin.Any, kotlin.Enum]
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagAdded: FLAGS
CHANGES in test/InnerClassHolder.InnerFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagRemoved: FLAGS

View File

@@ -3,9 +3,11 @@ CHANGES in test/AbstractFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AbstractFlagRemoved: FLAGS
CHANGES in test/AbstractFlagRemoved: CLASS_SIGNATURE
PROTO DIFFERENCE in test/AnnotationFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE
CHANGES in test/AnnotationFlagAdded: CLASS_SIGNATURE, PARENTS
[kotlin.Annotation, kotlin.Any]
PROTO DIFFERENCE in test/AnnotationFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE
CHANGES in test/AnnotationFlagRemoved: CLASS_SIGNATURE, PARENTS
[kotlin.Annotation, kotlin.Any]
PROTO DIFFERENCE in test/DataFlagAdded: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagAdded: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
@@ -13,9 +15,11 @@ PROTO DIFFERENCE in test/DataFlagRemoved: FLAGS, FUNCTION_LIST
CHANGES in test/DataFlagRemoved: CLASS_SIGNATURE, MEMBERS
[component1, copy, equals, hashCode, toString]
PROTO DIFFERENCE in test/EnumFlagAdded: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE
CHANGES in test/EnumFlagAdded: CLASS_SIGNATURE, PARENTS
[kotlin.Any, kotlin.Enum]
PROTO DIFFERENCE in test/EnumFlagRemoved: CONSTRUCTOR_LIST, FLAGS, SUPERTYPE_LIST
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE
CHANGES in test/EnumFlagRemoved: CLASS_SIGNATURE, PARENTS
[kotlin.Any, kotlin.Enum]
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagAdded: CONSTRUCTOR_LIST, FLAGS
CHANGES in test/InnerClassHolder.InnerFlagAdded: CLASS_SIGNATURE
PROTO DIFFERENCE in test/InnerClassHolder.InnerFlagRemoved: CONSTRUCTOR_LIST, FLAGS

View File

@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/ClassWithSuperTypeListChanged: SUPERTYPE_LIST
CHANGES in test/ClassWithSuperTypeListChanged: CLASS_SIGNATURE
CHANGES in test/ClassWithSuperTypeListChanged: CLASS_SIGNATURE, PARENTS
[kotlin.Any, kotlin.Throwable]

View File

@@ -1,2 +1,3 @@
PROTO DIFFERENCE in test/Base.Nested1.Nested2: SUPERTYPE_LIST
CHANGES in test/Base.Nested1.Nested2: CLASS_SIGNATURE
CHANGES in test/Base.Nested1.Nested2: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base]

View File

@@ -4,4 +4,5 @@ CHANGES in test/Base1: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Base2: SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base2: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Impl22: SUPERTYPE_LIST
CHANGES in test/Impl22: CLASS_SIGNATURE
CHANGES in test/Impl22: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base2]

View File

@@ -4,4 +4,5 @@ CHANGES in test/Base1: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Base2: SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base2: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Impl22: SUPERTYPE_LIST
CHANGES in test/Impl22: CLASS_SIGNATURE
CHANGES in test/Impl22: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base2]

View File

@@ -5,4 +5,5 @@ CHANGES in test/Base1: CLASS_SIGNATURE, MEMBERS
PROTO DIFFERENCE in test/Base2: SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base2: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Base2.Nested2: SUPERTYPE_LIST
CHANGES in test/Base2.Nested2: CLASS_SIGNATURE
CHANGES in test/Base2.Nested2: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base2]

View File

@@ -9,4 +9,5 @@ CHANGES in test/Base2.Nested1: CLASS_SIGNATURE, MEMBERS
PROTO DIFFERENCE in test/Base3.Nested1: SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base3.Nested1: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Base3.Nested1.Nested2: SUPERTYPE_LIST
CHANGES in test/Base3.Nested1.Nested2: CLASS_SIGNATURE
CHANGES in test/Base3.Nested1.Nested2: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base3.Nested1]

View File

@@ -5,4 +5,5 @@ CHANGES in test/Base1: CLASS_SIGNATURE, MEMBERS
PROTO DIFFERENCE in test/Base2: SEALED_SUBCLASS_FQ_NAME_LIST
CHANGES in test/Base2: CLASS_SIGNATURE
PROTO DIFFERENCE in test/Base2.Nested2: SUPERTYPE_LIST
CHANGES in test/Base2.Nested2: CLASS_SIGNATURE
CHANGES in test/Base2.Nested2: CLASS_SIGNATURE, PARENTS
[kotlin.Any, test.Base2]

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,3 @@
package test
interface A : Base

View File

@@ -0,0 +1,3 @@
package test
interface B

View File

@@ -0,0 +1,3 @@
package test
interface B : Base

View File

@@ -0,0 +1,3 @@
package test
sealed interface Base

View File

@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces

View File

@@ -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
------------------------------------------

View File

@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS

View File

@@ -0,0 +1,3 @@
package test
interface С

View File

@@ -0,0 +1,3 @@
package test
interface A : Base

View File

@@ -0,0 +1,3 @@
package test
interface B : Base

View File

@@ -0,0 +1,3 @@
package test
sealed interface Base

View File

@@ -0,0 +1,3 @@
package test
interface C : Base

View File

@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces

View File

@@ -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
------------------------------------------

View File

@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS

View File

@@ -0,0 +1,3 @@
package test
interface A : Base

View File

@@ -0,0 +1,3 @@
package test
interface B : Base

View File

@@ -0,0 +1,4 @@
package test
interface B

View File

@@ -0,0 +1,3 @@
package test
sealed interface Base

View File

@@ -0,0 +1,5 @@
package test
class C {
lateinit var base: Base
}

View File

@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces

View File

@@ -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
------------------------------------------

View File

@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS

View File

@@ -0,0 +1,3 @@
package test
interface A : Base

View File

@@ -0,0 +1,3 @@
package test
interface B : Base

View File

@@ -0,0 +1,3 @@
package test
sealed interface Base

View File

@@ -0,0 +1,5 @@
package test
class C {
lateinit var base: Base
}

View File

@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces

View File

@@ -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
------------------------------------------

View File

@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS

View File

@@ -0,0 +1,3 @@
package test
interface A : Base

View File

@@ -0,0 +1,3 @@
package test
interface B : Base

View File

@@ -0,0 +1,3 @@
package test
sealed interface Base

View File

@@ -0,0 +1,3 @@
package test
interface C : Base

View File

@@ -0,0 +1,5 @@
package test
class D {
lateinit var x: Base
}

View File

@@ -0,0 +1,4 @@
package test
class E {
}

View File

@@ -0,0 +1 @@
-XXLanguage:+FreedomForSealedClasses -XXLanguage:+SealedInterfaces

View File

@@ -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
------------------------------------------

View File

@@ -0,0 +1 @@
IC of sealed interfaces are not supported in JS