[PL][tests] Keep PL test data under "testData/klib/" dir
This commit is contained in:
committed by
Space Team
parent
9e3afe7a1f
commit
5c3e63e19a
+27
@@ -0,0 +1,27 @@
|
||||
sealed interface SI1 {
|
||||
class A : SI1
|
||||
class B : SI1
|
||||
}
|
||||
|
||||
sealed class SC1 {
|
||||
class A: SC1()
|
||||
class B: SC1()
|
||||
}
|
||||
|
||||
enum class E1 {
|
||||
A, B
|
||||
}
|
||||
|
||||
enum class E2 {
|
||||
A, B
|
||||
}
|
||||
|
||||
sealed interface SI2 {
|
||||
class ClassToObject : SI2
|
||||
object ObjectToClass : SI2
|
||||
}
|
||||
|
||||
sealed class SC2 {
|
||||
class ClassToObject : SC2()
|
||||
object ObjectToClass : SC2()
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
/*sealed*/ interface SI1 {
|
||||
class A : SI1
|
||||
class B : SI1
|
||||
}
|
||||
|
||||
/*sealed*/ abstract class SC1 {
|
||||
class A: SC1()
|
||||
class B: SC1()
|
||||
}
|
||||
|
||||
abstract class E1 {
|
||||
object A : E1()
|
||||
object B : E1()
|
||||
}
|
||||
|
||||
abstract class E2 {
|
||||
class A : E2()
|
||||
class B : E2()
|
||||
}
|
||||
|
||||
sealed interface SI2 {
|
||||
object ClassToObject : SI2
|
||||
class ObjectToClass : SI2
|
||||
}
|
||||
|
||||
sealed class SC2 {
|
||||
object ClassToObject : SC2()
|
||||
class ObjectToClass : SC2()
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib
|
||||
STEP 1:
|
||||
dependencies: stdlib
|
||||
modifications:
|
||||
U : l1.kt.1 -> l1.kt
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
fun computeSC1(sealedClass: SC1): String = when (sealedClass) {
|
||||
is SC1.A -> "A"
|
||||
is SC1.B -> "B"
|
||||
}
|
||||
|
||||
fun computeSI1(sealedInterface: SI1): String = when (sealedInterface) {
|
||||
is SI1.A -> "A"
|
||||
is SI1.B -> "B"
|
||||
}
|
||||
|
||||
fun computeE1(enum: E1): String = when (enum) {
|
||||
E1.A -> "A"
|
||||
E1.B -> "B"
|
||||
}
|
||||
|
||||
fun computeE2(enum: E2): String = when (enum) {
|
||||
E2.A -> "A"
|
||||
E2.B -> "B"
|
||||
}
|
||||
|
||||
fun computeSC2(sealedClass: SC2): String = when (sealedClass) {
|
||||
is SC2.ClassToObject -> "ClassToObject"
|
||||
SC2.ObjectToClass -> "ObjectToClass"
|
||||
}
|
||||
|
||||
fun computeSI2(sealedInterface: SI2): String = when (sealedInterface) {
|
||||
is SI2.ClassToObject -> "ClassToObject"
|
||||
SI2.ObjectToClass -> "ObjectToClass"
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import abitestutils.abiTest
|
||||
|
||||
fun box() = abiTest {
|
||||
class SI1_C : SI1
|
||||
class SC1_C : SC1()
|
||||
class E1_C : E1()
|
||||
class E2_C : E2()
|
||||
|
||||
expectSuccess("A") { computeSI1(SI1.A()) }
|
||||
expectFailure(noWhenBranch()) { computeSI1(SI1_C()) }
|
||||
expectSuccess("B") { computeSI1(SI1.B()) }
|
||||
|
||||
expectSuccess("A") { computeSC1(SC1.A()) }
|
||||
expectFailure(noWhenBranch()) { computeSC1(SC1_C()) }
|
||||
expectSuccess("B") { computeSC1(SC1.B()) }
|
||||
|
||||
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1.A) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1_C()) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'E1.A': No enum entry found for symbol '/E1.A'")) { computeE1(E1.B) }
|
||||
|
||||
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2.A()) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2_C()) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'E2.A': No enum entry found for symbol '/E2.A'")) { computeE2(E2.B()) }
|
||||
|
||||
expectSuccess("ClassToObject") { computeSI2(SI2.ClassToObject) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'ObjectToClass': 'ObjectToClass' is class while object is expected")) { computeSI2(SI2.ObjectToClass()) }
|
||||
|
||||
expectSuccess("ClassToObject") { computeSC2(SC2.ClassToObject) }
|
||||
expectFailure(linkage("Can not get instance of singleton 'ObjectToClass': 'ObjectToClass' is class while object is expected")) { computeSC2(SC2.ObjectToClass()) }
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 1:
|
||||
dependencies: stdlib, lib1, lib2
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
MODULES: lib1, lib2, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib1, lib2
|
||||
|
||||
STEP 1:
|
||||
libs: lib1, main
|
||||
Reference in New Issue
Block a user