Some enum-related fixes

(NB: testEnumClass3 doesn't work yet, effective modality required for enum class)
This commit is contained in:
Dmitry Petrov
2016-09-28 17:34:44 +03:00
parent de2bef910b
commit 608d6a37d2
12 changed files with 176 additions and 41 deletions
+15 -2
View File
@@ -1,3 +1,16 @@
enum class Test { OK }
fun <T> assertEquals(actual: T, expected: T) {
if (actual != expected) {
throw java.lang.AssertionError("Assertion failed: $actual != $expected")
}
}
fun box() = Test.OK.toString()
enum class Test {
OK
}
fun box(): String {
assertEquals(Test.OK.ordinal, 0)
assertEquals(Test.OK.name, "OK")
return "OK"
}
+21
View File
@@ -0,0 +1,21 @@
fun <T> assertEquals(actual: T, expected: T) {
if (actual != expected) {
throw java.lang.AssertionError("Assertion failed: $actual != $expected")
}
}
enum class TestEnumClass(val x: Int) {
ZERO
// {
// init {
// }
// }
;
constructor(): this(0)
}
fun box(): String {
assertEquals(TestEnumClass.ZERO.x, 0)
return "OK"
}
+17
View File
@@ -0,0 +1,17 @@
fun <T> assertEquals(actual: T, expected: T) {
if (actual != expected) {
throw java.lang.AssertionError("Assertion failed: $actual != $expected")
}
}
enum class TestEnumClass {
ZERO {
override fun describe() = "nothing"
};
abstract fun describe(): String
}
fun box(): String {
assertEquals(TestEnumClass.ZERO.describe(), "nothing")
return "OK"
}