Add enumeration support. (#128)
* Add enumeration support. * Enum classes lowering. * merge fix * merge fix * used arrayOf from irModule * changed lowering quant from body to file * refactoring * review fixes * lowering for GET_OBJECT in enums * enabled tests * added tests * moved tests to separate dir * renamed test files * moved phase up * review fixes * reformat
This commit is contained in:
committed by
Igor Chevdar
parent
66293cb89f
commit
c6a4ec2ff4
@@ -0,0 +1,24 @@
|
||||
enum class Game {
|
||||
ROCK,
|
||||
PAPER,
|
||||
SCISSORS;
|
||||
|
||||
companion object {
|
||||
fun foo() = ROCK
|
||||
val bar = PAPER
|
||||
val values2 = values()
|
||||
val scissors = valueOf("SCISSORS")
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
if (Game.foo() != Game.ROCK) return "Fail 1"
|
||||
if (Game.bar != Game.PAPER) return "Fail 2: ${Game.bar}"
|
||||
if (Game.values().size != 3) return "Fail 3"
|
||||
if (Game.valueOf("SCISSORS") != Game.SCISSORS) return "Fail 4"
|
||||
if (Game.values2.size != 3) return "Fail 5"
|
||||
if (Game.scissors != Game.SCISSORS) return "Fail 6"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) = println(box())
|
||||
@@ -0,0 +1,9 @@
|
||||
val TOP_LEVEL = 5
|
||||
|
||||
enum class MyEnum(value: Int) {
|
||||
VALUE(TOP_LEVEL)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(MyEnum.VALUE.toString())
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class Zzz(val zzz: String, val x: Int) {
|
||||
Z1("z1", 1),
|
||||
Z2("z2", 2)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(Zzz.Z1.zzz + Zzz.Z2.x)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
enum class Zzz(val zzz: String, val x: Int) {
|
||||
Z1("z1", 1),
|
||||
Z2("z2", 2),
|
||||
Z3("z3", 3);
|
||||
|
||||
override fun toString(): String{
|
||||
return "('$zzz', $x)"
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(Zzz.Z3.toString())
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
enum class Zzz {
|
||||
Z1 {
|
||||
override fun f() = "z1"
|
||||
},
|
||||
|
||||
Z2 {
|
||||
override fun f() = "z2"
|
||||
};
|
||||
|
||||
open fun f() = ""
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(Zzz.Z1.f() + Zzz.Z2.f())
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class E {
|
||||
E1,
|
||||
E2
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(E.valueOf("E1").toString())
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class E {
|
||||
E1,
|
||||
E2
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
println(E.values()[1].toString())
|
||||
}
|
||||
Reference in New Issue
Block a user