Files
kotlin/compiler/testData/codegen/boxWithStdlib/whenEnumOptimization/enumInsideClassObject.kt
Pavel V. Talanov ffabe19229 Prohibit accessing nested classes/objects of class object using class literal
The fqname of class should be clear from code
Example: can't shorten A.Default.B.Default.C to A.B.C
Also fixes problem when nested class of enum class could be accessed via enum entry
2015-03-03 13:04:29 +03:00

30 lines
679 B
Kotlin

import kotlin.test.assertEquals
class A {
class object {
enum class Season {
WINTER
SPRING
SUMMER
AUTUMN
}
}
}
fun foo(x : A.Default.Season) : String {
return when (x) {
A.Default.Season.WINTER -> "winter"
A.Default.Season.SPRING -> "spring"
A.Default.Season.SUMMER -> "summer"
else -> "other"
}
}
fun box() : String {
assertEquals("winter", foo(A.Default.Season.WINTER))
assertEquals("spring", foo(A.Default.Season.SPRING))
assertEquals("summer", foo(A.Default.Season.SUMMER))
assertEquals("other", foo(A.Default.Season.AUTUMN))
return "OK"
}