| // TARGET_BACKEND: JVM_IR | |
| // IGNORE_BACKEND_K1: JVM_IR | |
| // WITH_STDLIB | |
| // LANGUAGE: +ContextSensitiveEnumResolutionInWhen | |
| enum class Rainbow { | |
| RED, | |
| ORANGE, | |
| YELLOW, | |
| GREEN, | |
| CYAN, | |
| BLUE, | |
| VIOLET | |
| } | |
| fun sym(r: Rainbow) = when (r) { | |
| RED -> 'r' | |
| ORANGE -> 'o' | |
| YELLOW -> 'y' | |
| GREEN -> 'g' | |
| CYAN -> 'c' | |
| BLUE -> 'b' | |
| VIOLET -> 'v' | |
| } | |
| fun box(): String { | |
| val s = buildString { | |
| for (value in Rainbow.values()) { | |
| append(sym(value)) | |
| } | |
| } | |
| return if (s == "roygcbv") "OK" else s | |
| } |